<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>Editst</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <icon>https://editst.com/favicon.ico</icon>
  <id>https://editst.com/</id>
  <link href="https://editst.com/" rel="alternate"/>
  <link href="https://editst.com/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, Editst</rights>
  <subtitle>白日梦与其他</subtitle>
  <title>Editst Dream</title>
  <updated>2025-12-29T12:54:27.000Z</updated>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="随笔" scheme="https://editst.com/categories/%E9%9A%8F%E7%AC%94/"/>
    <category term="年终总结" scheme="https://editst.com/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    <content>
      <![CDATA[<p>又到了一年一次的年终总结时刻，今年总体的感觉是置身巨变中的惴惴不安，宏观上一切都在加速改变，虽然传导到身边的还没有那么多，但是有很明显的推背感。最直观的体会是大模型急速的进步，去年我还只是浅浅体验了一下各家厂商的模型，感慨确实是不一样了。今年随着思考链和多模态的普及，彻底感受到了大模型的强大。还能从飙升的金价和银价中感受到风雨欲来的味道，川普在第二任期上变得更加随心所欲，使得本就在钢丝上的各国关系更加紧张。</p><span id="more"></span><p>对我自己而言，今年没什么太大的变化，找不出什么亮点，但也不能说过得不好。印象最深的是国庆去了法国和意大利，第一次坐十几个小时的飞机到另一个世界，度过了开心又劳累的十天。这次旅行主要的时间都安排在了各种博物馆和美术馆，把巴黎和意大利主要的几个城市连起来逛了一遍，还加上那不勒斯附近的卡普里岛。去之前还做好了各种准备防止被偷，结果全程没感觉到有什么危险，非常顺利圆满地结束了旅程。最主要的感受还是历史的积淀，特别是佛罗伦萨和罗马，每一处都能看到漫长时光的痕迹，更不用说各种博物馆里经典的展品，早已在书籍和影视中见过它们无数遍了，亲眼看到时还是激动无比。此外就是对欧洲昂贵物价的无语了，前期订住宿的时候就已经感到肉疼了，稍微好一点的经济型酒店就要一千多一晚，再加上随便点点就人均二百多的餐饮，只能说还是实力不够啊，相比之下日本真的是一个性价比很高的旅游目的地了。</p><p>除此之外受限于少的可怜的假期，今年在国内去的地方倒不是很多，趁里程兑换打折去了一下贵阳，很喜欢这里的各色小吃，只是一个周末太特种兵了。还新去了浙江的几个城市，义乌确实很国际化，小商品城附近有正宗的土耳其菜和印度菜，但毕竟不是一个旅游城市，作为游客还是会感到有些无聊。</p><p>还比较有收获的就是今年的投资了，得益于各家对人工智能的疯狂投入，粗略算了一下应该是有接近翻倍的增长，但复盘下还是有很多不足的。一个是在4月川普关税时有点被吓住了，没有抓住这一机会补仓，现在看关注列表中的几只股票从那时算起的涨幅差不多都在一倍以上。另外一个就是完全忽略了中国的股市，在去年时提到坚定地选择了清仓国内的投资，现在看来应该多少关注一下，毕竟在大炼科技的刺激下，国内股市的平均涨幅还超过了美股。还有就是下半年时换了一点美元放在储蓄账户里没怎么动，现在看汇率的下跌完全超过了多余的一点利息收入，可以说是略亏的操作。不过今年的小确幸就是拿到了不少美国银行和券商的开户奖励，粗略算下来也好几千美元了，覆盖今年的旅行支出绰绰有余。但是随着AI相关的各类公司价格的飙涨，越来越难以下手买入新的持仓，明年的投资增长预期也不是很明朗。</p><p>对于明年的期许，要更积极主动地参与到生活中，多折腾一点有意思的东西。前几天看到和菜头的一篇文章，如果只在年底写总结的话往往会忘记今年的大部分事情，明年要试着每个月写点东西，还有就是少刷手机多看书，少吃零食多运动了。</p><p>祝各位无论时代如何变换，都可以平安顺遂。</p>]]>
    </content>
    <id>https://editst.com/2025/summary-2025/</id>
    <link href="https://editst.com/2025/summary-2025/"/>
    <published>2025-12-29T12:54:27.000Z</published>
    <summary>
      <![CDATA[<p>又到了一年一次的年终总结时刻，今年总体的感觉是置身巨变中的惴惴不安，宏观上一切都在加速改变，虽然传导到身边的还没有那么多，但是有很明显的推背感。最直观的体会是大模型急速的进步，去年我还只是浅浅体验了一下各家厂商的模型，感慨确实是不一样了。今年随着思考链和多模态的普及，彻底感受到了大模型的强大。还能从飙升的金价和银价中感受到风雨欲来的味道，川普在第二任期上变得更加随心所欲，使得本就在钢丝上的各国关系更加紧张。</p>]]>
    </summary>
    <title>2025 年终总结：加速</title>
    <updated>2025-12-29T12:54:27.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="随笔" scheme="https://editst.com/categories/%E9%9A%8F%E7%AC%94/"/>
    <category term="电影" scheme="https://editst.com/tags/%E7%94%B5%E5%BD%B1/"/>
    <category term="年终总结" scheme="https://editst.com/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    <category term="读书" scheme="https://editst.com/tags/%E8%AF%BB%E4%B9%A6/"/>
    <content>
      <![CDATA[<p>看到去年的总结说看的书太少，今年好像更少了，想了一下平时回家刷刷网页啥的也就没啥时间看书了，还是11月开始专门找时间开始多看了几本。24年买过的书还一直堆在桌子上，灰都好多了，立个flag明年一定把桌子上的书看完。今年的电影和演出倒是看了不少，照例还是合在一起记录一下吧。</p><span id="more"></span><h2 id="读书">读书</h2><p>今年只看了24本，比去年还少，真是一年不如一年了。好在还有个频道记录一下看完后的感受，倒是方便写总结了。想了一下好像没有一本像去年一样毫不犹豫地选择出来的最喜欢的书，如果说读的比较投入的还是两本国内作家的小说<a href="https://book.douban.com/subject/37268610/">《鬼笑石》</a><a href="https://book.douban.com/subject/34969942/">《聋哑时代》</a>。前一本悬疑小说基本上是一晚上读完的，有很明显的被作者推着看完的感觉，事实证明还是这种大众文学读起来比较轻松愉快。后一本是双雪涛早年的作品，之前看过他的《平原上的摩西》十分喜欢，把他其他的作品也看了一下，这本是一本类似自传的由几个短篇组合起来的作品，不算传统意义上的长篇作品。本来挺喜欢的，可惜结尾还是有些太俗套了，有种前面那些故事都浪费了的感觉，实在是遗憾。</p><p>另外还看了几部别的小说，选比较喜欢的说一下吧。<a href="https://book.douban.com/subject/35093992/">《老无所依》</a>，故事虽然有些老套，但是叙述方式还是很有意思的，视角的切换和事无巨细的描写有种看电影的感觉，只不过故事结束得有点太草率了，不过或许这就是生活吧，谁知道呢。<a href="https://book.douban.com/subject/27130210/">《传家之物》</a>，爱丽丝·门罗的自选集，之前看了一两篇没继续看下去，这次接着把剩下的看完了。可以感觉到大部分故事的背景都有些相似，都融入了门罗自己的家庭背景，其他的也有许多聚焦在加拿大偏远乡村的女性在面对人生时的种种选择。许多故事都让人忍不住感叹这到底是怎么样的生活啊，但我还是相信生活远比她笔下的故事更为痛苦。</p><p>还有几本社科类的，<a href="https://book.douban.com/subject/27091742/">《邻人之妻》</a>，也是标记了想读很久的一本书，作者用小说般的行文记录了美国上个世纪色情行业的蓬勃发展和人们观念的巨大转变，让我想起了之前看过的《最危险的书》。有点难想象之前的美国是如此的保守，但这最终敌不过人们对于色情最本能的追求，特别是随着经济和技术的发展，人们开始正视和接纳这些作品的出现，很有意思的变化。然后是两本关于二战后历史的书，<a href="https://book.douban.com/subject/26298832/">《零年：1945》</a>聚焦在1945这一特殊的年份，虽然是短短的一年，但是集中了劫后余生的庆幸与随之而来的疯狂，也有仍未结束的苦难，还能看到此时就已经埋下种子的动乱与战争。正如作者所说，或许这一年很难被视为是结束了战争的一年，毕竟之后还有那么多的暴行发生，但正是在这一年的基础上诞生了我们所熟悉的现代世界。恰逢二战结束80年，能愈发感到和平的珍贵，以及全球化浪潮的不可思议，很难想象能从那时的一片废墟发展到如今的现代化世界，几乎可以算得上是奇迹了。作为生活在这个时代的人，又面临如今的去全球化，真觉得可惜，惟愿不要再有战争来临了。<a href="https://book.douban.com/subject/26354440/">《野蛮大陆》</a>在1945年的基础上延展了几年，描绘了二战后欧洲各国的重组与迁徙，此时三巨头还在想尽办法把数千万人安置到新的地方，无论是出于何种目的，这造成了单一民族国家的大量诞生，也为后来的民族主义叙事打下了基础。此时冷战的阴云已能望到，但还尚远，更多的是不同种族之间的纷争与纠缠，正处于一种普遍抛弃了一切道德的生活中，而这仅仅是几十年前的欧洲，更让人印象深刻。读完印象最深的是人们为了让自己摆脱二战的阴影可以做出如此多匪夷所思的行为，或许这就是战争的可怕吧，不仅在战时的破坏，还会一直持续很久。</p><h2 id="电影演出">电影演出</h2><p>今年看过的电影和剧集加起来有140部，如果算上几个在豆瓣上没有词条的作品应该会更多。感觉今年去苏州的次数确实不少，以及看了不少上海的日常影展放映，又是破纪录的一年呢。</p><p>还是先讲一下院线片吧，今年的国产片没什么特别喜欢的，倒是下半年为了救市引进了好几部国外的经典作品还可以，能在大荧幕上观看还是很幸运的。不考虑艺联办的几次全国范围的影展的话，最喜欢的院线片应该是<a href="https://movie.douban.com/subject/36176155/">《一战再战》</a>，PTA在国内上映的唯一一部作品吧，充满了对美国左右撕裂的讽刺，可以看到左派和右派都有着无解的弱点，也难怪他们斗了这么久。配乐和画面也十分有趣，在大屏幕上看效果满分。还有印象深刻的是<a href="https://movie.douban.com/subject/10450409/">《赛德克·巴莱》</a>居然无删减引进了，在影院看的时候都在感慨这画面也是我能看的吗，画面冲击力还是太强了一些。以及引进了<a href="https://movie.douban.com/subject/10428501/">《新世纪福音战士新剧场版：终》</a>，可惜被删减和裁切了很多，十分影响观感，稍微有点突出人物身体曲线的地方就被放大裁切，对比前面无删减的赛德克巴莱，十分讽刺。</p><p>然后就是在苏州电影资料馆看的了，不得不说资料馆真的是个好地方，虽然被吐槽的也挺多，但好歹是一个可以看到这么多经典电影的地方。最惊喜的当然是在这里圆满看完了四部《新世纪福音战士新剧场版》，从头到尾的重温了一边这个神奇的作品，以及一个完美的结局，最终回到了现实的世界。回想起第一次接触这个系列作品还是在初中的时候，那时的自己肯定想不到十几年后可以坐在苏州的影院里看着这些吧。此外还有<a href="https://movie.douban.com/subject/26844922/">《杰出公民》</a>，是一个自己套自己的故事，一个获得了诺奖的作家，终生以自己的故乡为创作源泉，却没再回去过。当他决定再次回到故乡的时候，不难理解是什么让他决绝地离开了40年，每个人都试图从他身上得到些什么，把他称作英雄只是为了更好地道德绑架他。<a href="https://movie.douban.com/subject/1291831/">《灿烂人生》</a>，用六个小时讲述了意大利三代人的生活，没有太波澜壮阔，但是静水流深，让人感觉到人生的美好与生活的意义。</p><p>还有各类影展，除了收获满满的上影节，其他的影展也还算满意。杭州的浙青影展看了两部之前已经看过的作品，不过在大荧幕上体验还是不一样。<a href="https://movie.douban.com/subject/1438652/">《无耻混蛋》</a>是很典型的昆丁的电影，无论是画面上不时出现的字幕提示，还是跳脱的画外音和剪辑画面。情节其实很简单，就是对二战历真是史的幻想与调侃，如果真的有这么一群人，真的能把纳粹德国的将领一窝端，可惜这些都没有发生。最后的结尾也很恶搞，但想想和纳粹做过的那些事情相比，这其实也不算什么了。<a href="https://movie.douban.com/subject/1293172/">《末代皇帝》</a>是挺久以前看过的了，最初知道这部电影还是因为坂本龙一的配乐，当时看的也不是很认真，这次在影院几乎是首次观影的感觉，整体体验确实不错。导演交叉剪辑了溥仪在新中国前后的经历，用他的一生展现了波澜壮阔的中国近代史，可以看到他的命运从来不在自己手中，从皇帝到一个园丁，让人感慨。还有苏州金鸡影展看的<a href="https://movie.douban.com/subject/1292260/">《现代启示录》</a>，以越战为背景，是对战争的荒谬和残酷的一种全景式展现，看到人是如何在战争中被异化，陷入一团无解的漩涡，最后走向毁灭。看完还是庆幸生在了如今一个远离战争的环境。</p><p>今年最特别的体验应该就是去苏州用一整天看完了王兵的<a href="https://zh.wikipedia.org/zh-cn/%E9%9D%92%E6%98%A5_(2023%E5%B9%B4%E7%B4%80%E9%8C%84%E7%89%87)">《青春》三部曲</a>，很珍贵的体验。三部纪录片加起来九个小时，但是全程基本没什么走神的时候，跟着导演的镜头进入了织里的一个又一个相似却不同的纺织工厂，看到了一个个鲜活的人物。最喜欢的是第二部《苦》，对其中那位经历了2011年织里事件的工人尤其印象深刻，之前看过很多对这种群众事件的报道，但是看一位被警察抓捕殴打的当事人用笑着的方式讲出来，感触截然不同，很难想象他又选择来织里做机工的感受是什么。</p><p>除了这些，今年还看了好几部很优秀的剧集，印象最深的是<a href="https://movie.douban.com/subject/36820950/">《混沌少年时》</a>，用克制冷静的手法去探究一个压抑的少年是如何被异化成犯下如此罪行的样子，看完后只觉得无力，这个社会和网络中隐含的恶意是如此无孔不入。不难联想到国内无数的新闻以及网上尖锐的对立和纷争，这种厌女和有毒的男子气概对于所有人来讲都是有巨大伤害的。<a href="https://movie.douban.com/subject/36831851/">《匹兹堡医护前线》</a>用一部剧的长度讲了一个医院急救诊室一天的经历，看的过程中都能感受到医护巨大的压力和痛苦，以及他们居然能在这种环境下完成救治是多么的不容易，虽然很少有升华的部分，但他们的伟大无需多言。</p><p>还有就是今年看的演出了，最惊喜的当然是<a href="https://www.douban.com/location/drama/37827607/">《悲惨世界40周年纪念版音乐会》</a>，居然能在线下看到现场演出，真的是很难得的机会，尽管不是完整的音乐剧版，但还是听到了那些经典的曲目，特别是《Do You Hear The People Sing?》，这首歌所号召的那种反抗精神到现在也不过时，甚至更被需要。上海国际艺术节的<a href="https://www.douban.com/location/drama/37101214/">《理查三世》</a>，德国邵宾纳剧院的作品，全长160分钟，基于莎士比亚的剧作改编，由德国人来演绎英国王室的故事，有点点奇怪，但全剧的表现十分精彩，理查的疯狂和绝望表现得淋漓尽致，看着他一步步无可救药地走向毁灭，能感受到注定如此的宿命感。形式上是现代化的布景，有少量多媒体镜头的插入，用特写展现理查的面部，有种错位的疯狂感。上海当代戏剧节的<a href="https://www.douban.com/location/drama/37427560/">《我们漂泊至此》</a>，一部加拿大的音乐剧，关于罗马尼亚的犹太难民在加拿大的故事，用好几首动听的歌曲串起了整个故事。之前只是简单的听说过罗马尼亚大屠杀，但是演出展现了两位难民的经历，让人更能体会到这种动荡下个人的痛苦和艰难。虽然中国不是一个移民国家，但是也存在大量的从故乡迁移到大城市的人，能多少体会到那种漂泊者的感受，当然这和被迫到其他国家的难民还是差别挺大的。以及印象最深刻的NT Live的<a href="https://movie.douban.com/subject/37293378/">《非穷尽列举》</a>高清放映，首先是舞台形式上，充分发挥了话剧舞台的魅力，人物穿梭于不同的布景间，身份的交替在眨眼间完成，而道具和布景的配合也天衣无缝，真的是很棒的舞台展现。作品融合了诸多深刻的社会议题，性别平等、校园霸凌、厌女文化、青少年沟通教育等等，却又不显得突兀和说教，这一切都引向了那个出乎意料有有迹可循的结局。一个看似完美的家庭，女法官母亲用尽全力在职场和家庭中做到最好，当然毫无疑问她已经做到了几乎完美，可是还是要面对儿子被指控强奸的冲击，让人深思这一切都是如何产生的，又是否还有可能避免这种悲剧。</p><p>这么一看今年的文化生活还挺充实的，不过反思一下还是浪费了大量的时间在刷手机等没什么意义的事情上，把这些时间无论是用来读书还是看电影都是更好的选择，希望明年可以更好地利用时间，多看多写。</p>]]>
    </content>
    <id>https://editst.com/2025/summary-2025-book-movie/</id>
    <link href="https://editst.com/2025/summary-2025-book-movie/"/>
    <published>2025-12-21T05:51:34.000Z</published>
    <summary>
      <![CDATA[<p>看到去年的总结说看的书太少，今年好像更少了，想了一下平时回家刷刷网页啥的也就没啥时间看书了，还是11月开始专门找时间开始多看了几本。24年买过的书还一直堆在桌子上，灰都好多了，立个flag明年一定把桌子上的书看完。今年的电影和演出倒是看了不少，照例还是合在一起记录一下吧。</p>]]>
    </summary>
    <title>2025 读书与观影小结</title>
    <updated>2025-12-21T05:51:34.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="随笔" scheme="https://editst.com/categories/%E9%9A%8F%E7%AC%94/"/>
    <category term="上影节" scheme="https://editst.com/tags/%E4%B8%8A%E5%BD%B1%E8%8A%82/"/>
    <category term="电影" scheme="https://editst.com/tags/%E7%94%B5%E5%BD%B1/"/>
    <content>
      <![CDATA[<p>好久没更新了，就还是写一下今年的上影节吧，整体来讲是很满意的一次体验，蹲到了很多惊喜的票，感谢各位出票和收我的票的好心人们，还是挑几部喜欢的记录一下。</p><span id="more"></span><p>《新世纪福音战士剧场版》不必多说，经典作品，之前在资料馆看完了四部新剧场版，加上旧剧场版算是补完了。对比下来还是更喜欢新剧场版的内容和结局，算是与世界的和解吧。</p><p>《梦》，一部很清新细腻的讲述青春期情感的电影，差不多是本届上影节最喜欢的一部电影了，背景在挪威，能充分感受到人物的轻盈和无忧无虑，是羡慕不来的成长环境了。讲述方式很现代，轻松又带着点幽默，很有意思。看过之后才知道青春片可以拍的这么美好和善良，这才是青春的感觉啊。</p><p>《解构爱情狂》和《子弹横飞百老汇》，两部伍迪艾伦的电影，都挺喜欢的。前者是今年上影节看到现在最喜欢的一部电影（不考虑早已看过的EVA旧剧场版），伍迪艾伦亲自出镜，完美地演出了一个处理不好现实中关系的作家，他把自己的生活都倾注到了自己的作品中。影片在他的真实生活与作品世界无缝切换，很好地表现出了那种突然就沉入自己的世界的感觉。正如片名，伍迪艾伦解构了许多宏大的东西，把现代化的虚无表现的淋漓尽致，处处充满着幽默却又不显得刻意，很愉快的一次观影。后者讲述了一个自认为有才的编剧见识了什么是真正的天才，最后认清自己的故事。夹杂着各种讽刺与黑色幽默，后半部分更是让人笑个不停。</p><p>《侠盗猎车哈姆雷特》，也是看了某篇推荐买的一部，一开场是在游戏侠盗猎车手的画面，我还在想完了是什么东西，结果是看完特别惊喜的一部纪录片。讲述了英国两名演员由于疫情封控，只能在游戏里消磨时间，结果某天走到游戏中的户外舞台上突发奇想，打算在这里演一场哈姆雷特。利用游戏中的自由度，他们突破了现实的限制，完成了一场只存在于侠盗猎车世界中的哈姆雷特。莎士比亚的台词配合疫情期间的茫然，现实生活与游戏世界相互影响，真的是分外有意思。可以说是上影节到现在最大的惊喜了。</p><p>《粗野派》，一部三个半小时的传记片，还是IMAX版，观影体验拉满。主角是一位二战后移居美国的犹太人，很自然地能想到那个年代他所经历的种种磨难，能体会到他的挣扎和痛苦。不过还是感慨时代不同了，美国早已不是那个盛产钢铁制造一切的国家，也不是那个对移民敞开大门的自由灯塔了，世界终究是变了。里面很大一部分故事发生在宾州，让我想起了之前看过的汉洋制作的<a href="https://shanyouhu.xyz/side1">关于宾州钢铁和水泥之城的故事</a>，感慨颇多。</p><p>《罪人》，非常适合在IMAX影院欣赏的电影，高潮部分伴着音乐真的让人意犹未尽，表面上是吸血鬼，实际上不难想到它们代表的那些压迫与剥削，可惜现实世界中不会有突然升起的太阳来净化一切。很讽刺的是吸血鬼们一起念圣经，这东西对它们来讲也是个笑话。略微不足的是开头有些冗长，故事进入有点点慢。想到这部电影在港澳随便看，国内却要疯狂求票，有点悲哀。</p><p>转眼上影节已经结束三个月了，后面也断断续续看了不少江浙沪的影展，但集中在那十天里疯狂赶场的感觉还是独一无二的。回想下今年的选片，整体比较一般的是大卫林奇的几部作品，可能我确实不是对这类题材太感兴趣吧，最大的感受应该是好的放映厅对观影感受的提升还是很明显的，看过的三部IMAX作品的观影效果都没得说。</p><p>电影确实是一门很神奇的艺术，还是衷心期望能有更多机会看到更多好的电影。</p>]]>
    </content>
    <id>https://editst.com/2025/siff-27th/</id>
    <link href="https://editst.com/2025/siff-27th/"/>
    <published>2025-09-12T16:26:43.000Z</published>
    <summary>
      <![CDATA[<p>好久没更新了，就还是写一下今年的上影节吧，整体来讲是很满意的一次体验，蹲到了很多惊喜的票，感谢各位出票和收我的票的好心人们，还是挑几部喜欢的记录一下。</p>]]>
    </summary>
    <title>第27届上影节小结</title>
    <updated>2025-09-12T16:26:43.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="随笔" scheme="https://editst.com/categories/%E9%9A%8F%E7%AC%94/"/>
    <category term="年终总结" scheme="https://editst.com/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    <content>
      <![CDATA[<p>2024的最后一天了，照例来写下年终总结，对许多人来讲今年应该是很不寻常的一年，无论是远方的世界还是近处的生活，都有许多让人灰心的事情发生。前两天刚听完声东击西的2024声音时光胶囊，前面大半是一件又一件让人惊叹居然还可以更糟的事情，后面则是那些依然让人感觉这个世界的美好的记录，让我印象最深的，则是一条“好的都是大叙事，悲的都是小人生”的评论。</p><p>这让我想起了自己在今年的感受，尽管知道今年各方面的环境都在变差，但我自己却意外地没有感到很糟，或许是因为从发生在自己身边的小事中获取到了幸福和满足，也或许是因为这些后果还没传递到自己，但我觉得在未来这样一个晦暗的年代里，对个体来讲更重要的是珍惜“具体”，关注自身和具体的附近，把握那些稀少的确定的快乐。</p><span id="more"></span><p>年初的<a href="https://zh.wikipedia.org/zh-sg/2024%E5%B9%B4%E6%B1%9F%E8%A5%BF%E6%96%B0%E4%BD%99%E5%BA%97%E9%93%BA%E7%81%AB%E7%81%BE%E4%BA%8B%E6%95%85">江西新余火灾</a>，仿佛预告了2024年的基调是悲伤与混乱。后面还有<a href="https://zh.wikipedia.org/wiki/%E5%B9%BF%E4%B8%9C%E6%A2%85%E5%A4%A7%E9%AB%98%E9%80%9F%E8%B7%AF%E9%9D%A2%E5%A1%8C%E6%96%B9%E7%81%BE%E5%AE%B3">广东梅大高速塌陷</a>，是偶然还是必然？<a href="https://zh.wikipedia.org/zh-cn/%E8%98%87%E5%B7%9E%E6%96%B0%E5%9C%B0%E4%B8%AD%E5%BF%83%E5%85%AC%E4%BA%A4%E7%AB%99%E5%8F%B0%E6%8C%81%E5%88%80%E8%A5%B2%E6%93%8A%E4%BA%8B%E4%BB%B6">苏州日本人学校的校车遇袭</a>，与<a href="https://zh.wikipedia.org/wiki/%E7%8F%A0%E6%B5%B7%E5%B8%82%E9%AB%94%E8%82%B2%E4%B8%AD%E5%BF%83%E9%A7%95%E8%BB%8A%E6%92%9E%E4%BA%BA%E4%BA%8B%E4%BB%B6">珠海体育中心撞人</a>，同样是对弱者下手的无能与懦弱。还有<a href="https://zh.wikipedia.org/zh-sg/2024%E5%B9%B4%E4%B8%AD%E5%9B%BD%E5%A4%A7%E9%99%86%E9%A3%9F%E7%94%A8%E6%B2%B9%E7%BD%90%E8%BD%A6%E6%B7%B7%E8%BF%90%E4%BA%8B%E4%BB%B6">食用油运输车与化工油混装</a>，早已是业内公开的秘密，那这些业内人在生活中又会买什么油呢。年底的<a href="https://zh.wikipedia.org/zh-sg/2024%E5%B9%B4%E9%9F%93%E5%9C%8B%E6%88%92%E5%9A%B4">韩国总统戒严</a>与<a href="https://zh.wikipedia.org/zh-hans/%E6%B5%8E%E5%B7%9E%E8%88%AA%E7%A9%BA2216%E5%8F%B7%E7%8F%AD%E6%9C%BA%E7%A9%BA%E9%9A%BE">韩国济州航空失事</a>，一个是让人看到了韩国社会民主的坚强，一个则是让人感慨人生的无常。不过想点进步的，今年最引人关注的应该还是AI的发展，我也切实感受到了ChatGPT在生成各种</p><p>到了今年，可能没有人再幻想经济形式大好，终于开始正视经济上遇到的困难。4月的时候我把剩余的基金份额全部赎回，换成了美元，基本彻底清空了在国内的投资。虽然国庆时的救市政策出台后有过几天的疯涨，但这也与我无关了，还是选择专心投资美股。另外得益于群友的无私帮助，在下半年的时候开始了探索美卡的旅程。尽管早就申请了ITIN和美国汇丰，但是一直限于没有地址，没再更进一步。短短两三个月，成功开通了AMEX和Capital One的两张信用卡，以及几个额外的银行账户，在国内信用卡权益日益温暖的当下，多了一种选择。</p><p>今年出门的次数还挺多的，主要还是集中在江浙沪，受限于短暂的周末，稍远点的地方都有些难以成行，也感受到了工作后只能等长假出行的无奈。印象最深的当然是去了日本，也是我第一次出国，最大的感受是日本无处不在的人文关怀，这一点在香港澳门时也有感受，但日本明显做得更好。无论是无障碍设施还是对各国游客提供的便利，都让人在细微处感受到温暖。当然更开心的是今年的许多旅行不再是一个人，而是有了一群好友的陪伴，也有了她的陪伴，是和自己出门旅行完全不一样的体验。</p><p>还有就是今年在Telegram开通了自己的私人频道，虽然只有十几个人关注，但慢慢地会在看完电影和演出、旅游的间隙、有什么感想时都随手发一下，也算是一种记录生活的方式。正如开头所提到的，正是这些具体的快乐和感慨才一点点构成了我们的生活。言至于此，想起还有不少烦心事等着我，想不去管它们却又想起来就生气，就觉得这所谓的新年是没啥意义，只不过是地球又绕着太阳转完了一圈而已。就这样吧，衷心祝福每一位朋友和看到这里的人，于晦暗中仍可寻得美好。</p>]]>
    </content>
    <id>https://editst.com/2024/summary-2024/</id>
    <link href="https://editst.com/2024/summary-2024/"/>
    <published>2024-12-31T06:15:56.000Z</published>
    <summary>
      <![CDATA[<p>2024的最后一天了，照例来写下年终总结，对许多人来讲今年应该是很不寻常的一年，无论是远方的世界还是近处的生活，都有许多让人灰心的事情发生。前两天刚听完声东击西的2024声音时光胶囊，前面大半是一件又一件让人惊叹居然还可以更糟的事情，后面则是那些依然让人感觉这个世界的美好的记录，让我印象最深的，则是一条“好的都是大叙事，悲的都是小人生”的评论。</p>
<p>这让我想起了自己在今年的感受，尽管知道今年各方面的环境都在变差，但我自己却意外地没有感到很糟，或许是因为从发生在自己身边的小事中获取到了幸福和满足，也或许是因为这些后果还没传递到自己，但我觉得在未来这样一个晦暗的年代里，对个体来讲更重要的是珍惜“具体”，关注自身和具体的附近，把握那些稀少的确定的快乐。</p>]]>
    </summary>
    <title>2024 年终总结：珍惜具体</title>
    <updated>2025-02-24T16:10:30.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="随笔" scheme="https://editst.com/categories/%E9%9A%8F%E7%AC%94/"/>
    <category term="电影" scheme="https://editst.com/tags/%E7%94%B5%E5%BD%B1/"/>
    <category term="年终总结" scheme="https://editst.com/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    <category term="读书" scheme="https://editst.com/tags/%E8%AF%BB%E4%B9%A6/"/>
    <content>
      <![CDATA[<p>又是一年结束，工作后感觉时间过得快了很多，以前的时间是按天计算，现在的只能按周计算，只有周末才有空做点自己的事情，平时下班回家往往没什么心力做些啥了。看了下豆瓣今年的标注，发现今年看的书不多，但应该是看电影最多的一年，合在一起记录一下吧。</p><span id="more"></span><h2 id="读书">读书</h2><p>看了下去年的总结，写着还是要多读书，结果算了下今年只看了27本，实在是惭愧。不过今年开了个频道记录一下自己读完书的感受，也算是有点进步吧。总的来讲今年看的还是小说多一些，最喜欢的应该是<a href="https://book.douban.com/subject/36463571/">《巴别塔》</a>，如书名一样，是一本和语言有关的书，开头的设定十分有趣，细节也十分有趣，唯一的缺点应该就是结束得略微有些仓促，或许也是剧情的走向有些超出了控制吧。</p><p>然后就是社科类的几本，<a href="https://book.douban.com/subject/30271098/">《最危险的书》</a>，在2020年就标记了在读，期间反复打开又放下，一直没能读完。但今年再次开始看后，发觉作者的叙述如此生动，读来层层深入，无比顺滑。这本书讲述了《尤利西斯》从开始连载到被列为禁书收缴焚烧，再由律师上诉成功的历程，正是这些勇敢的人拓宽了我们文化的边界，也期待一个更自由的世界。现在看来难以想象一百年前的英美对所谓“淫秽”文字的审查与压制，但正如书中所说：没有不可变的抽象，没有永恒的价值，在经典”和“污秽”之间、在传统和堕落之间没有永久的藩篱。没有绝对的权威，没有单一的文化欣赏角度，没有一种整齐划一的思想凌驾于我们之上。联想近期许多耽美作者被判刑的报道，更让人感慨万千。<a href="https://book.douban.com/subject/35694442/">《空间的敦煌：走近莫高窟》</a>，正如书名所言，巫鸿以空间的视角“由远及近、从外到内巡视了莫高窟的种种空间构成，从它的自然和文化环境到崖面的历史变化，从窟内的建筑和雕塑空间到壁画内的‘经营位置’”。尽管我对莫高窟的了解仅限于偶尔看到的雕塑和壁画图片，这本书还是让我身临其境般地游览和了解了莫高窟的方方面面，虽然它同时也是一本学术著作，读起来却毫无艰涩，行文无比顺畅，强烈推荐给每一位对敦煌或者美术史感兴趣的人。<a href="https://book.douban.com/subject/36593622/">《世上为什么要有图书馆》</a>，围绕作者挂职时筹建碑林区图书馆的经历展开，我最喜欢的还是作者和不同领域的朋友探讨交流筹备书单的过程，有人文社科、自然科学，还有宗教哲学。通过读书与交流能无限扩展人的视野与生命，着实是令人愉快的事情。或许这就是书名的解释吧，虽然未曾展开论述与解释，可书中的每一篇都在告诉我们为什么。<a href="https://book.douban.com/subject/30206893/">《中国历代政治得失》</a>，也是一本标记为想读已久的书，钱穆用简练的语言总结了中国具有代表性的几个时期的中央和地方政府架构，虽然全书仅就这一个问题进行了论述，但以小见大，能体会到社会经济各方面与“政制”的相互作用关系。以史为鉴，放在如今经济环境中对比来看，仍算得上意义深远。</p><h2 id="电影">电影</h2><p>前面说到今年应该是观影最多的一年，数了下总共132部，略有点震惊，主要得益于上影节和电影资料馆江南分馆，看了许多平时自己应该不会主动看的电影，当然也有不少日常影展，总的来讲算的上是收获满满的一年。下面就挑喜欢的讲一下。</p><p>院线片里，最喜欢的是<a href="https://movie.douban.com/subject/36154853/">《好东西》</a>，全片拍得很精巧，无论是小孩在校园的关系还是铁梅的生活，都处理得有点美好的童话的意味，我们应该都知道现实没有这么美好，所以才更喜欢这部电影。能get到超多导演想传达的点，有两个印象深刻的，一个是他们去看的展览，是我也看过的第十四届上海双年展，就像电影里说的那样，我也觉得着实一般。另一个是台词中说到不必做超人，英文翻译的是superhero，有心了。<a href="https://movie.douban.com/subject/36587974/">《出走的决心》</a>，很惊讶目前国内可以上映如此现实和批判性的电影，让我最难受的是社会环境的压迫，缺乏对女性有效的支撑，只能剥削自己的母亲。期待更多这样的作品上映，很喜欢。<a href="https://movie.douban.com/subject/35426925/">《机器人之梦》</a>，是一部充满了爱的细节和惊喜的动画电影，纯粹又美好，没有台词却能充分传递出每个角色之间的感情和羁绊，让人感动。</p><p>影展中有在上影节看的<a href="https://movie.douban.com/subject/1292262/">《美国往事》</a>和<a href="https://movie.douban.com/subject/35691849/">《火星特快》</a>，在之前<a href="https://editst.com/2024/siff-26th/">上影节的文章</a>里说过了，还是想感慨下，在大荧幕看电影的感觉真的不一样。然后是在上海俄罗斯影展中看的<a href="https://movie.douban.com/subject/1300977/">《飞向太空》</a>，根据经典科幻小说《索拉里斯星》改编的，和现在的科幻电影不太一样，对感性的表达大于外在的科学技术，探讨了人类认知边界与精神世界的相互联系，还有意味深长的结尾。让人想起了播客<a href="https://podcast.weareones.com/">《迟早更新》</a>的某一年新春特辑，便是以此为主题的，有些想找来再听一下。</p><p>今年最开心的应该就是位于苏州的电影资料馆江南分馆开幕了，从此不用再羡慕北京的影迷了（还是有些羡慕他们工作日也可以随时去），今年在这里看的电影不少，一般是去一次就三场连看，度过充实的大半天。昨天刚看了一部十分喜欢的<a href="https://movie.douban.com/subject/36445098/">《还有明天》</a>，用黑白镜头讲述了20世纪60年代意大利战后第一次全民公投的故事。本来以为影片中的女主是（剧透警告）要逃离到别的地方，结果到最后才发现她选择了握紧自己的选票，勇敢地行使了自己作为公民的权利，因为还有明天。这也是当时无数意大利女性做出的勇敢选择，令人叹服。印象深刻的还有<a href="https://movie.douban.com/subject/25766754/">《年轻气盛》</a>，主角是老去的指挥和导演，在瑞士的疗养院中散步闲聊，是老人的视角和故事，却总在不经意中展现出年轻的美好和追忆，时间真是可怕啊。<a href="https://movie.douban.com/subject/5322596/">《超脱》</a>，以一个高中文学教师的视角，展现了这一代青年的失控与茫然，以及人与人之间注定的孤独和无可奈何。表现手法也很有意思。伪纪录的风格和不时的闪回，让人更难分辨这是预言还是现实。<a href="https://movie.douban.com/subject/1307200/">《机遇之歌》</a>，通过对男主宿命般轮回的描写，展现了在苏联统治下政治的无孔不入，无论你做何选择，都无可奈何地走向那个无奈的结局。</p><p>最后是<a href="https://movie.douban.com/subject/35712804/">《首尔之春》</a>，一个人的选择会对一个国家的命运产生多么深远的影响，对比12月韩国持续了几个小时的戒严时间，正是过去几十年的民主运动，造就了一个充满行动力的社会，拒绝踏入同样的河流，我们会有这一天吗。</p><p>除了电影，今年还看了不少演出，特别是看到了原版的《剧院魅影》《巴黎圣母院》《芝加哥》《摇滚莫扎特》，尤其喜欢前三部，明年还有《悲惨世界》的音乐会巡演，期待。此外还看了《蒋公的面子》和《暗恋桃花源》，也是想看许久的话剧，确实经典，以及其他的话剧音乐会种种，总的来讲是挺丰富的一年，也是花了不少钱的一年。还是期待明年多看点书了，毕竟看书最便宜，哈哈。</p>]]>
    </content>
    <id>https://editst.com/2024/summary-2024-book-movie/</id>
    <link href="https://editst.com/2024/summary-2024-book-movie/"/>
    <published>2024-12-23T11:12:01.000Z</published>
    <summary>
      <![CDATA[<p>又是一年结束，工作后感觉时间过得快了很多，以前的时间是按天计算，现在的只能按周计算，只有周末才有空做点自己的事情，平时下班回家往往没什么心力做些啥了。看了下豆瓣今年的标注，发现今年看的书不多，但应该是看电影最多的一年，合在一起记录一下吧。</p>]]>
    </summary>
    <title>2024 读书与观影小结</title>
    <updated>2024-12-29T11:39:36.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="随笔" scheme="https://editst.com/categories/%E9%9A%8F%E7%AC%94/"/>
    <category term="上影节" scheme="https://editst.com/tags/%E4%B8%8A%E5%BD%B1%E8%8A%82/"/>
    <category term="电影" scheme="https://editst.com/tags/%E7%94%B5%E5%BD%B1/"/>
    <content>
      <![CDATA[<p>终于有精力简单写一下上影节比较喜欢的几部电影了，按观影顺序简单记录下吧。</p><span id="more"></span><p>《出租车司机》，当然不是韩国那部不存在的电影，而是马丁·斯科塞斯的作品，作为今年看的第一部影片，有很明显的时代感，充满了七十年代人的迷茫和不知所措，有愤怒甚至都不知道该面向哪里。电影的画面也很迷人，特别是夜色中迷离的纽约，混乱却充满吸引力。</p><p>《纯真年代》，同样是马丁·斯科塞斯的作品，情节在现在看来有点老套，但是想象这样的爱情和放手，还是令我感动。</p><p>《低俗小说》，昆汀的知名作品，之前就在电脑上看过，这次重温了 4K 版，依然是足够吸引人，可能是本次上影节最喜欢的作品了。反套路的开头和剧情，处处充满着讽刺和调侃，以及不少低俗的笑点，是一部没什么深刻内涵却让人开心的电影。</p><p>《攻壳机动队》《攻壳机动队2：无罪》，两部经典的作品，很幸运收到了两场连看的票，其内容放在当下看格外应景，面临或许已不再遥远的 AGI，人类最本质的存在和区别是什么，所谓的灵魂是我们独一无二的吗，如何判断我是我，或许这就是那些会永远追问下去的问题。</p><p>《美国往事》，应该也是本次上影节最喜欢的作品之一，全长四个多小时，本以为会忍不住走神或打瞌睡，却全程目不转睛地看完了。作为一部描绘上世纪美国黑帮的故事片，虽然讲的是兄弟之间的故事，但还是能看到不同人的选择对人生的影响。特别是黛博拉与面条间的纠葛，她能放弃这些坚定地走出这个环境，是多么无畏的人啊。</p><p>《火星特快》，一部法国动画电影，探讨了自然人与机器人、自然人与意识克隆体之间的关系，动画对于许多场景的表现有得天独厚的优势，整体画面风格也很喜欢，就是字幕的翻译过于离谱，像是机翻又没人校对的产品，多亏了自带英文字幕，不然许多地方真是不知所云。</p><p>《穿越无尽的海洋前往月球》，同样是个法国的电影，里面充满了希腊夏日的海洋，无尽的青春，无尽的美好时光。所有人都是无忧无虑地漂在夏日时光里，哪怕是两个父亲的冲突，也被戏剧化的剪辑所淡化，这就是我想象中美好的夏日吧。</p><p>《有人赞美聪慧，有人则不》，百老汇的重映计划选片，并不属于本次上影节的放映范围，但还是放了进来，算是一部意外的惊喜之作。同样是发生在夏天，这次是两个小学生的故事，能让人瞬间回想起曾经漫长的暑假，不知天高地厚，不知何为忧愁。或许早熟的孩子会对未来有种莫名的预感，但这不影响和伙伴一起享受这无穷无尽的暑假，享受肆意的快乐。</p><p>今年的上影节虽然由于工作错过了许多，但还是收获满满的10天，祝每个人都能享受电影的美好，或者任何美好，再会。</p>]]>
    </content>
    <id>https://editst.com/2024/siff-26th/</id>
    <link href="https://editst.com/2024/siff-26th/"/>
    <published>2024-07-05T16:34:26.000Z</published>
    <summary>
      <![CDATA[<p>终于有精力简单写一下上影节比较喜欢的几部电影了，按观影顺序简单记录下吧。</p>]]>
    </summary>
    <title>第26届上影节小结</title>
    <updated>2024-07-05T16:34:26.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="随笔" scheme="https://editst.com/categories/%E9%9A%8F%E7%AC%94/"/>
    <category term="年终总结" scheme="https://editst.com/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    <content>
      <![CDATA[<p>又是拖到了最后一天来写年终总结，由于晚上有跨年演唱会，所以提前到中午开始。可能是上班了的原因，今年感觉结束得格外迅速，特别是下半年。总的来讲，虽然今年无论是经济还是政治，都在一种下滑的状态里，但我自己觉得还是很不错的一年，有了诸多第一次，回归生活，回归当下。彻底告别了学生时代，当然有怀念和不舍，但还是要走下去，哪怕前方阴云密布，就“独立向荒原”。</p><span id="more"></span><p>说来讽刺，2023 年开始的时候，许多人都相信经济会随着疫情防控的结束而迅速好转，然而现实却是房地产行业的进一步衰落，以及由此带来的各行各业的冷清，直到 12 月的中央经济会议，要求“唱响经济光明论”。而随着经济的下滑，不可避免的就是趋向保守的社会，再叠加上越来越严格的言论管控，道路以目的日子也不远了。笑果文化的 House（李昊石）就<a href="https://zh.wikipedia.org/wiki/%E6%9D%8E%E6%98%8A%E7%9F%B3%E4%BA%8B%E4%BB%B6">因为八个字被消失</a>，笑果也被无限期停止演出，甚至这两个字也成为了不可提及的禁忌。随之而来的还有各种问题的暴露，<a href="https://zh.wikipedia.org/wiki/%E9%BD%90%E9%BD%90%E5%93%88%E5%B0%94%E4%B8%AD%E5%AD%A6%E4%BD%93%E8%82%B2%E9%A6%86%E5%9D%8D%E5%A1%8C%E4%BA%8B%E6%95%85">齐齐哈尔体育馆</a>与<a href="https://zh.wikipedia.org/wiki/%E6%A1%A6%E5%8D%97%E5%8E%BF%E4%BD%93%E8%82%B2%E9%A6%86%E5%9D%8D%E5%A1%8C%E4%BA%8B%E6%95%85">佳木斯体育馆</a>的坍塌，让人再一次看到权力的傲慢与狂妄，中国人总是用软肋的，就算没有，也能找到别的方式让你闭嘴。</p><p>尽管如此，还是能找到让人感到希望的事情，今年万圣节在上海的游行，让我确信总会有清醒而勇敢的年轻人在人群中，或许就在某个关键时刻挺身而出。无论是白纸、防护服还是鲁迅、程蝶衣，都是光明的希望。就我自己而言，今年算得上充实。</p><p>年初趁着最后一次寒假去了北京，听了第一次线下单口喜剧，第一次话剧，体验了影博震撼的 IMAX GT 放映。短短几天行程，基本都在逛各种博物馆，很羡慕北京的文化资源和历史底蕴。之后赶在毕业前去了几次香港，办了几张银行卡，看了几场在内地不可能上映的电影。还赶在答辩前去广西和云南逛了一圈，然后到上海听了万青的演唱会，参加了上海电影节，虽然热门的电影没抢到几个，还是算得上收获满满。然后就是答辩、毕业、入职，上班后的时间瞬间加速了不少，就是周一到周五的无尽循环。还是感谢一线城市的优秀文化资源，虽然只能尽量挑周末的时间，但还是看了不少的演出。</p><p>可是除了这些，却没有学习什么新的东西。想想很惭愧，明明下班后有了大把的时间，今年连博客都没再写一篇。当然也可能是因为毫无意义的工作确实没什么值得记录的，但还是要做点什么，不能放纵自己沉溺在这种温水煮青蛙的环境里。这么一写又觉得今年过的是有些仓促，好像是在用演出和娱乐来麻痹自己虚度时光的悔恨，那就且看明年吧。</p>]]>
    </content>
    <id>https://editst.com/2023/summary-2023/</id>
    <link href="https://editst.com/2023/summary-2023/"/>
    <published>2023-12-31T04:51:37.000Z</published>
    <summary>
      <![CDATA[<p>又是拖到了最后一天来写年终总结，由于晚上有跨年演唱会，所以提前到中午开始。可能是上班了的原因，今年感觉结束得格外迅速，特别是下半年。总的来讲，虽然今年无论是经济还是政治，都在一种下滑的状态里，但我自己觉得还是很不错的一年，有了诸多第一次，回归生活，回归当下。彻底告别了学生时代，当然有怀念和不舍，但还是要走下去，哪怕前方阴云密布，就“独立向荒原”。</p>]]>
    </summary>
    <title>2023 年终总结：独立向荒原</title>
    <updated>2023-12-31T04:51:37.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="随笔" scheme="https://editst.com/categories/%E9%9A%8F%E7%AC%94/"/>
    <category term="年终总结" scheme="https://editst.com/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    <category term="读书" scheme="https://editst.com/tags/%E8%AF%BB%E4%B9%A6/"/>
    <content>
      <![CDATA[<p>又到了写总结的时候，今年豆瓣推送的年终总结格外令人汗颜：2023年想读37本，读完36本，照这速度我的想读书目应该不存在被清空的哪天了。去年写道忙于找工作，读书不多，今年上半年写毕业论文，然后趁着答辩前的间隙出去玩了几次，下半年入职后也没读多少书，总的来讲还是不尽如人意啊，照例挑几本比较喜欢的来说一下。</p><span id="more"></span><p>今年读的小说偏多，主要是科幻和国内新一代所谓“东北文学”作品。前者最喜欢的是<a href="https://book.douban.com/subject/35959816/">《寻获与失落》</a>，是一种与常见的硬科幻风格迥异的写作风格，描写细腻，可以把你拖入一个又一个全新的宇宙，虽是中篇，却能感受到异世界的迷人魅力。还有《格雷格·伊根经典科幻三重奏》，其实是三本短篇小说集，每本中都有格外突出的作品。格雷格·伊根的作品偏硬科幻，强设定，不过还是挺合我理工男的胃口的。后者今年读完的作品里最喜欢的是短篇小说集<a href="https://book.douban.com/subject/26803179/">《平原上的摩西》</a>，据此改编的同名影视剧我也十分喜欢。读小说的描写更加能体会到上个世纪末东北的失落与萧瑟，以及由此带来的动荡与痛苦，是弥漫在整部小说集中的。虽然我未亲历上个世纪的东北，但这几年的疫情，以及23年的衰退，让人仿佛能预感到些什么。</p><p>除了小说，还有两本历史类的作品，一个是<a href="https://book.douban.com/subject/25755752/">《监狱琐记》</a>，是王学泰在文革末期因言获罪，在监狱里的所见所闻。现在读来，虽无一字在抱怨，却格外能体会到那个疯狂年代的荒诞，没有法治，每个人早晚都会成为被害者。另外一个是<a href="https://book.douban.com/subject/30258604/">《八月炮火》</a>，这本书前几年反反复复读了几次，始终没能读完，这次再从头开始，终于看到了最后一页。整本书的行文不像是历史著作，更像是一本小说，对于一战前的欧洲形势，作者做了深入而细致的描写，一场改变整个世界的战争就是这么荒诞地发生了，从此再不会有那个黄金时代。</p><p>还看完了<a href="https://book.douban.com/subject/35459568/">《认识电影（修订第14版）》</a>，这本书可以说是电影爱好者的入门必读书目了，现在看电影会有意识地分析一下画面、调度等信息，而不是只关注剧情。当然也没记住太多，里面各种经典电影的剧照，可以当作收藏也不错。</p><p>就是这些，明年还是要多读书，祝好。</p>]]>
    </content>
    <id>https://editst.com/2023/summary-2023-read/</id>
    <link href="https://editst.com/2023/summary-2023-read/"/>
    <published>2023-12-30T12:28:33.000Z</published>
    <summary>
      <![CDATA[<p>又到了写总结的时候，今年豆瓣推送的年终总结格外令人汗颜：2023年想读37本，读完36本，照这速度我的想读书目应该不存在被清空的哪天了。去年写道忙于找工作，读书不多，今年上半年写毕业论文，然后趁着答辩前的间隙出去玩了几次，下半年入职后也没读多少书，总的来讲还是不尽如人意啊，照例挑几本比较喜欢的来说一下。</p>]]>
    </summary>
    <title>2023 读书小结</title>
    <updated>2023-12-30T12:28:33.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="转载" scheme="https://editst.com/categories/%E8%BD%AC%E8%BD%BD/"/>
    <category term="正面连接" scheme="https://editst.com/tags/%E6%AD%A3%E9%9D%A2%E8%BF%9E%E6%8E%A5/"/>
    <category term="农民工" scheme="https://editst.com/tags/%E5%86%9C%E6%B0%91%E5%B7%A5/"/>
    <content>
      <![CDATA[<blockquote><p>本文原载于微信公众号“正面连接”，后因“地图使用不规范”被删除，国内其他平台亦被删除，特此转载。</p></blockquote><p><strong>个人奋斗有用吗？在发了2500份问卷、访谈了200人之后，调研最终显示，努力并不能真正改变他们的处境，决定命运的主要是社会因素。</strong></p><p>我家小区的保洁老赵，来北京打工了23年，60岁时却没法退休。他未来的养老金每月只有100多元，因此打算打工到70岁为止。</p><p>他这代农民工，也是我国“第一代农民工”，生于70年代前，在八九十年代进城打工，不少人务工超过30年。但这8600万余人到晚年，情况和老赵大致相同。</p><p>老赵是河南驻马店人，2000年来到北京，那年他32岁，看过门，做过绿化，2007年来到我们小区做保安。如此又过了10年，49岁了，还没攒够钱结婚，一个人住在冬天没暖气、夏天潮湿发霉的10平米地下室。</p><p>我知道这些，是因为我当时在报社实习，需要出一篇农民工的稿子，而老赵是离我最近的农民工。</p><p>“我7年没有休假，一天工作10小时，一个月2700。这不是我一个人的情况，大家都是这样的。”临走他叮嘱，“这几句话你千万不能删”。</p><p>不止这几句，关于老赵的整个部分都被删掉了，原因是“负能量”。老赵不符合我们对于农民工生活的美好愿景，但这个人群的实际处境，比我们能想到的还要更糟。</p><span id="more"></span><p>安徽师范大学的副教授仇凤仙做了一项研究。她发了2500份问卷，访谈了200人，想知道第一代农民工老去后如何维生。我在报告的字里行间看到了无数老赵——</p><p>当我们热议“延迟退休”，担心60岁不能休息，他们中60.7%只能“干到干不动为止”；</p><p>当城市老人每月平均能领到3000元退休金，他们的养老金只有一两百元；</p><p>他们都打工超过15年，但到了晚年，一半以上的存款还不到5万元；</p><p>他们挣到钱都寄回家里，供孩子上学，但结果，下一代阶层跨越不到20%。</p><p>我们更容易忽视的一点是，他们既是工人，也是老人。他们在本该退休的年纪不得不继续努力工作，但结果是，他们既得不到老年生活所承诺他们的，譬如天伦之乐和医疗保障，也得不到工人应有的回报和尊严。</p><p>1993到2005，全国城镇职工的月工资提高了1260元，而农民工的增长幅度是：68元。</p><p>他们并非不努力，但调研最终显示，努力并不能真正改变命运。仇凤仙最后用“社会脆弱性”来描述他们的处境，即这是一个时代性问题，深受社会排斥性政策的影响，远非个人能决定。</p><p>他们的困境，和今天很多人面临的困境惊人地相似，这或许是一个社会中，弱者们常见的命运。</p><h2 id="“退休”不存在">“退休”不存在</h2><p>现实中的老赵，已经整整两年没有领到过一分钱工资了。4年后，小区取消了保安岗位，于是他就转去做保洁，不料又过3个月，保洁岗位也不给发钱了。</p><p>老赵仍然在坚持给小区做保洁，他每天早6点来清理两个垃圾桶，7点垃圾站开门时“永远第一个到”，然后回去清扫6栋楼。为了挣出饭钱，收垃圾时他自己分类去卖废品，每月能卖出600多元。</p><p>“你可以不做，但以前的钱他都不给你咋整呢？”他说要耗到拿回工资。</p><p>他不是没考虑过劳动仲裁，那是在他没领到工资的第21个月，但他不知道仲裁需要合同，而这份14年的工作从来都没有劳动合同。</p><p>因此，这份工作的状态，处在一个薛定谔猫的状态，如果最后他能领到工资，它就是，如果领不到，那就不是。但在老赵眼里，这个“工作”仍然“来之不易”，因为他已经55岁了，在劳务市场，这个年龄只能去做更不稳定的日结工。由于“清退令”的出台，他即将连去工地搬砖也失去资格——政策严禁60岁以上的农民工再进入工地。</p><p>老赵不是孤例，站在60岁前后这个坎上，好多农民工为了能有份工作，想尽了办法。</p><p>为了在上海工地上找一份工作，一位64岁的农民工办了张假身份证，把年龄改小7岁，结果刚上工两天，就在检查时被抓获。他被罚500元，拘留了1天。</p><p>也是在上海，一位49岁的保洁员想跳槽，但总因年龄被拒。她也花300元办假证，把年龄改小11岁，最后被行政拘留5天。</p><p>即便工作难找，即便冒风险，第一代农民工大都不打算退休。接受调研的农民工里，76.1%决定60岁以后继续在城市里打工。</p><p>他们并不具备退休享福的条件。城市里的老人有养老金保底，平均每月3000元，在第一代农民工群体里，这个数字不到300元。即便如此微薄，也只有65%的人可以领到。</p><p>他们中的大部分人，在年轻时顾不上考虑晚年，只能把工资用在当下。2009年养老金政策出台，35%的人不相信或不理解这项政策如何与自己的未来有关，于是没有参保。他们60岁后只能领基础养老金，每月仅100多元。</p><p>参保的人也很少能搞明白养老金是“多缴多得”的。一位45岁工人已缴了11年养老金，但其实一直按低档缴费，60岁后每月只能领195元。他在得知这个数字后问，这有什么用？第二句：我交了这么多年，为什么一个月就拿这点钱？</p><p>为了领到较高的养老金（每月600-700元），一位女工需要在60岁时一次性补齐此前15年的保险费，共8万元。她凑不出这笔钱。她每月只挣几千元。“都让我交养老保险，我吃什么呢？”她决定放弃，继续做环卫工人。</p><p>这些农民工也没有什么存款。接受调研的的人里，接近一半（41.22%）打工超过20年，但是超过一半（55.2%）存款不到5万元。</p><p><img src="30-years-01.webp" alt=""></p><p>他们只能继续工作。但市场和政策限制，却让他们随年龄增长，越来越挣不到钱。</p><p>50来岁的农民工还可以在建筑工地上找到日薪300元的活儿。虽然“一天不能坐”，有人喊一声让拎泥桶、搬木头，就要立刻去帮忙，很多人还会自愿加班多挣些钱。一位山东56岁的工人最多一天干14小时，有时加班一整夜，第二天白天还能继续干。</p><p>当年纪超过60岁，他们连挣这份辛苦钱也失去资格。近两年，各地出台“清退令”，严禁60岁以上的农民工再进入建筑工地。他们只能转去做绿化、保洁、仓库管理员，薪水不到工地上的1/3。</p><p>再超过70岁，他们在城市几无生路了。一位农民工71岁被迫回乡，在村里帮忙盖房子，工钱一天100元。75岁时，一家劳务中介下乡招保洁员，工资一天110元。虽然只多10元，他还是去了，69岁的老伴刚做完胆结石手术3个月，好在也能干活，两人收入加一起就有200多元。</p><p>从此他带着老伴，每天早6点坐1小时车进城，到一处工地上倒垃圾、扫地，下午4点再坐车回乡，一周干7天。他说：“能动是福气，不能动就可怜了。”</p><h2 id="工作、收入被时代限定-努力也存不下钱">工作、收入被时代限定 努力也存不下钱</h2><p>第一代农民工大多在80年中期、90年代初进城打工。他们最能挣钱的青壮年时代，恰好是城市发展最快的三十年。但时代红利为什么没给他们带来好处？他们打工半辈子，为什么还是没能存下钱？</p><p>我们来看看这三四十年间发生了什么：</p><p>改革开放后的80年代，第一代农民工开始进城，在1989年创造了第一次“民工潮”。同年，各地开始清退农民工。</p><p>1990年，北京要求清退25万人，所有单位、企业都要每月填表报进度。那时，“民工潮”冲击了城市管理，同时城市正面临下岗潮，城里人也要再就业。农民工成了城市的“麻烦”。</p><p>三四年后，市场经济体制逐渐确立，城市需要大量廉价劳动力，他们又被允许进城了。两三年后，他们再一次遭清退，因为城市又面临大规模下岗。</p><p><img src="30-years-02.webp" alt=""></p><p>但他们不懂政策，不知道自己被“清退”过，只知道有天被开除后就很难再找到活。一位89年开始外出务工的农民工记得，找不到活，他就在桥洞住了一个月，自己带被子。</p><p>90年代末到20年代初，城市对农民工可以参与的工种也有限制——</p><p>在上海，全市三类工作中，只有一类“允许考虑”使用外地劳动力，前提是招不满本地人；</p><p>在北京，全市8个行业、103个工种，都不许雇用外地劳动力；</p><p>在青岛，市属企业每招一个外地人，还要交50块钱；</p><p><img src="30-years-03.webp" alt=""></p><p>他们甚至无法像后来的农民工那样进入工厂做流水线（很多工厂也仅限本地户籍），他们能做的都是本地人不愿干的，建筑业和人力装卸。这些活很多是“黑工”，他们中21%遭遇过欠薪等权益侵害。</p><p>涨薪更无从提起。在改革带来红利的12年，1993到2005，珠三角地区的农民工月工资只提高了68元（而全国城镇职工平均提高了1260元）。考虑到通货膨胀，相当于他们在黄金年龄段，一直被降薪。</p><p><img src="30-years-04.webp" alt=""></p><p>第一代农民工的遭遇与城市发展息息相关，但他们总是处在被动之中。城市需要了，就吸纳他们，不需要了，就清退他们。他们在自己的青壮年时期，始终无法连续、稳定地工作，一直在城乡间来回摇摆。</p><p>近20年来，赚钱的机会多了，但他们也老了，竞争不过年轻工人；同时他们还要负担孩子的教育、房子、婚礼，仅存的一点钱也要掏空了。</p><h2 id="钱都给了孩子-结果下一代阶层跨越不到20">钱都给了孩子 结果下一代阶层跨越不到20%</h2><p>也不能说老赵一无所有。他在北京打工23年，存了20万，高于调研中90%的人。但这基于一个特殊原因，与多数受访者不同，老赵没有子女。</p><p>第一代农民工花钱最多的排序，第一名基本都是子女的婚姻和教育。</p><p>在北方农村，孩子结婚的开销在30到50万。儿子结婚这一年，一位农民工全年打工收入7万元，支出却高达32万元。他不得不借钱。</p><p><img src="30-years-05.webp" alt=""></p><p>事后他们再还全部的债。因为女方通常要求“婚后不还债”。安徽一对夫妇有3个儿子，为前两个结婚已耗尽存款，也无钱可借了，只好给三媳妇打欠条，许诺盖房钱。此后夫妻俩一起外出捡破烂，10年没回家，只源源不断给小儿子汇钱。</p><p>他们的孩子会把钱花在自己身上，孙辈会努力成为城市人，但第一代农民工还在坚持为家庭输血。2009年的一项调研显示，在广东，65%—70%的新生代农民工把收入用于个人消费，但80%—90%的第一代农民工还在把工资汇回家。</p><p>为了能稳定供给家庭，第一代农民工会主动放弃个人发展的机会——比如先投些钱，就可能做个小包工头——因为他们不敢冒险，怕失败了会倾家荡产。他们也会放弃为自己储蓄。要到60岁，完成对子代的任务了，才开始为自己攒钱。</p><p>他们把希望寄托在下一代身上，想让他们不再重复打工的命运。</p><p>但结果，他们的孩子大部分初高中就辍学了，读到大专及以上的不到20%。63.5%的孩子成为了下一代农民工。进入党政机关、事业单位的仅5.1%，自己创业的仅2.9%。</p><p>与第一代农民工对应，他们的孩子或许可以被称为第一代留守儿童。这两代人都没有什么选择，父母为了生计只能外出务工，孩子也不得不留守农村。访谈中聊到孩子，第一代农民工大都说自己认了命，“孩子不是读书的料”。</p><p>研究显示，由于缺乏父母的引导和情感支持，留守儿童在学业上处于劣势。一项基于3500人的调研显示，比起同龄人，留守儿童长大后更难适应高强度的异化劳动。在深圳“干一天玩三天”的“三和大神”，过着一种“三抛”的生活——抛弃家庭，抛弃社会，最后抛弃自己——他们中很多都是第一代农民工的孩子。</p><p>像一种循环，他们的孩子在生子后，也进入了父辈的模式。很多人为孩子上学在县城买房，但自己又只能在大城市打工，于是孩子成为又一代留守儿童。</p><p>一位农民工A曾尝试打破这种循环。他1989年到上海干工地，1991年孩子出生。为避免留守，他让孩子小学二年级就到上海上学，每年5000元借读费，“抵普通人家三四个小孩”，交完就攒不下一点钱。但在孩子初二时，他得知外地户籍不能在上海中高考，只好让孩子独自回老家。</p><p>最开始，他觉得六七年的上海生活，还是让孩子和老家的同龄人不一样，但这种区别没能维持多久，“他自己在家没人管，学的好坏我们也不知道”。</p><p>他的孩子后来大专毕业，去常州打工，再后来有了自己的孩子，这个家庭的第三代，又被送回安徽农村留守。</p><p>因为那些年交了借读费，A没有存款，没买房，2020年疫情爆发后回到家乡，临走时最后一份工还欠他4万元不给。他也不懂养老保险要“多缴多得”，将来每月只能领200多元。访谈时他56岁，在芜湖开了一个小门脸收垃圾。他说，自己打工了30多年，但最后好像和那些一直在村里的人，也没什么差别。</p><h2 id="不能看病，伤病只能随打工累积">不能看病，伤病只能随打工累积</h2><p>第一代农民工中最年轻的也有50多岁了，他们面临所有老年人共同的看病问题。不同于城市老年人日常出入医院开药，他们极少看病。</p><p>一位芜湖的大厦保洁员为了看病失去了工作。她只请了一天假，等回去干活时，公司就不要她了，说有人顶上了。</p><p>从此她再不敢请病假。她64岁，腿脚不便，每天要负责把6层楼拖两遍，还要做其他区域的保洁。她月工资1800元。访谈时她正在拖地，每拖一层，都要停下来喘气。但她说没办法，只要不是当时要命的病，她都会拖到年底回家才去看。</p><p>调研中，对于最担心的问题，61.4%的第一代农民工认为是“身体健康”，但——</p><p>仅有35%曾参加过体检；</p><p>63.4%在务工地城市看病0次；</p><p>58%的人都“能忍则忍”，仅有11.8%选择去当地大医院看病。</p><p><img src="30-years-06.webp" alt=""></p><p>在第一代农民工外出务工的八九十年代，农村还没有任何医疗保险，看病是“裸奔”状态，多数人不愿把辛苦挣来的钱用于医疗。</p><p>2010年新农合（新型农村合作医疗）基本覆盖全国，但不能异地携带。他们打工时生了病，必须先回户籍所在地的医院，确认不能诊治，办转诊手续，再回打工地看病才能报销，但还要自己先垫钱。</p><p>他们看病要么自费，要么回老家报销，但要承担路费、时间成本、失业的风险。</p><p>但当问到对新农合的态度，他们中一半以上选择“满意”，说这很好了，从前看病都不给报销。他们只跟过去的自己比，却不会横向比，因为他们不知道城市里医疗报销比例有多高。</p><p>不论病痛还是看病难，他们都选择忍受。职业伤害给他们造成的腰酸背痛，远比城市老人更严重，但他们不会像城市老人一样去做按摩、理疗、针灸，只忍着，‍‍贴虎皮膏药。</p><p>他们认为去医院没用，因为没法遵医嘱。一位50多岁的女工因长期干活，手腕形成囊肿后不能弯曲，还很疼。医生建议她回家休息，说这就是干活累的，不能再干了。可是她觉得，不让她干活她就没法活。</p><p>问题随时间不断累积，到晚年，他们看上去普遍比实际年龄老十多岁，身体各部位疼痛，一些人还患有工作环境污染引起的尘肺病、红斑狼疮……相比工作超过10年的人，工作不到5年的人自评“健康”的概率高44.7%，即打工越久，身体可能越差。</p><p>一位农民工年轻时做的是扛包的工作，一个大包100多斤，扛一个挣10块钱，他一天要扛十几个，不时闪到腰，疼得直掉汗。访谈时他54岁，已直不起腰，胳膊也抬不高了，医院诊断是肌肉劳损。</p><p>另一位做了很多年铲水泥的工作，昼夜都接单，天天被水泥呛得咳嗽。50岁，他开始不时感觉喘不上气，但没去看病也不请假，“自己歇歇就能干了”，几年后越喘越厉害，到医院确诊了肺气肿。</p><p>访谈时他57岁，一走路就喘得厉害，走几步就要歇歇，返乡在家，什么都不能干了。“听说这个病哪里也治不好”，他就不治了，只天天吃消炎药，还是孩子在淘宝上给买的。“实在憋得不行了，我就去医院吊两天水。”</p><p>仇凤仙觉得，对于第一代农民工，城市留给他们最深的痕迹可能就是健康问题，“他们带着一身伤病，回到乡村，‍‍回到那个原点，但那个原点已经不是当时那个原点了”。</p><h2 id="个人奋斗有用吗？">个人奋斗有用吗？</h2><p>一些词语经常被用来形容第一代农民工群体，“小农意识”、穷人思维，似乎他们是被自己的头脑限制住了，无法过上更好的生活。</p><p>他们可能确实缺乏魄力和开拓性，不敢投资、把握不住机会，但这并不是他们生活艰辛的原因，而是结果。他们没有存款，没有保险，也没有家庭的支持，自然不愿冒险。仇凤仙觉得，是社会排斥造成了他们没有抗风险能力，却把责任转嫁给农民自身。</p><p>在调研之前，仇凤仙曾预设这些农民工的命运，和社会因素、个人因素都有关。经过问卷和访谈，她发现，这些人的个人情况都差不多。绝大多数人初中都没有读完（83.85%）、没学过技能（67.4%），家里贫困到没钱支持他们在城里摆摊，也没有人脉。</p><p>他们并非不努力。直到60岁退休年龄之后，他们依然谋求打工的机会。工地进不去，他们就去做日结工，凌晨4点在路边等招工的面包车。但是努力好像是无用的。</p><p>仇凤仙最后在报告中，用“社会脆弱性”来描述他们面临的困境，即他们的处境和未来是一个时代性问题，深受社会政策的排斥性影响，不是个人能决定的。</p><h2 id="被遗忘的一代人">被遗忘的一代人</h2><p>人们很难真的理解第一代农民工的处境。仇凤仙曾在一篇文章中呼吁，要给农村老人多提供好的工作机会。一位专家批评她“没有人文情怀”，认为应该让老人休息。仇凤仙觉得，这其实是不了解农村。不让他们工作，谁来负担他们的生活开支呢？</p><p>他们没有意识和能力为自己发声，争取权利。他们没有学历，不会运用媒体，只会忍受。访谈中他们很少抱怨累，只会说“哪有活不累呢”；身体坏了，他们也觉得正常，“一辈子干活，怎么可能还有好身体呢”。问他们将来有什么打算，他们说“看世道走”，意思是看这个时代会怎么发展。最后他们默默回到家乡。</p><p>仇凤仙1979年生，父亲、哥哥、妹妹都外出打过工，“我要是出去，我就是第一代农民工。”后来她成了家里唯一上大学的人。她的妹妹比她小几岁，16岁外出打工，挣钱给她交学费。2003年仇凤仙大学毕业，去上海一个工地看妹妹和妹夫，工地上没有夫妻房，他们俩和十来个人一起住一个大工棚，只用木板隔出一个单独的房间。成为学者后，她本能地想关注第一代农民工。</p><p>开始调研后，她发现他们很渴望倾诉。只要问了一个人，马上会有一堆人围上来，大家七嘴八舌，她甚至很难单独跟一个人访谈。他们讲自己找不到工作、没钱回家，要么再加上家人生病，问题几乎都一样。</p><p>他们说，这些事没法跟家人讲，没出来的亲人听不懂；也没法跟工友讲，总换地方打工，其实很难有朋友；他们更不可能跟城里人讲，尽管这些人真正有替他们发声的渠道——一位农民工长年在工地，那其实是个和城市隔绝的封闭空间，他说一直不清楚城里人在过什么样的生活，最近刷抖音才看见。</p><p>他们也确实正在一步步离开我们的视野，从我们虽不熟悉，但尚有概念的工地，渐渐退到我们更不会看到、想到的地方。</p><p>他们也许会退到你的小区，拖楼道的地、擦电梯；也可能退到你工作的大厦旁，平整楼前的草地、浇花草。但你每天进进出出也不会留意到他们。</p><p>你甚至不会像路过工地时一样，好歹能联想起他们共同的身份。他们老去后像是一块石被碾成碎渣，又被风吹到城市的各个角落，于是你不再能看到石头。</p><p>仇凤仙曾悲观地想，“农民工老去后怎么办”可能永远不会进入城市人的头脑。一个人是农村人，老了就回到农村，似乎是天经地义。只有细究了他们的每一点付出和代价才会想到，他们和城市人一样在城市工作一生，最后却一无所有，这并不正常。</p><blockquote><p>参考资料：</p><p>仇凤仙. 第一代农民工可持续生计研究. 2023</p><p>包小忠. 刘易斯模型与 “民工荒”[J]. 经济学家, 2005, 4: 55-60.</p><p>江立华. 论城市农民工的平等竞争权问题[J]. 华中师范大学学报: 人文社会科学版, 2002, 41(4): 10-13.</p><p>汪建华, 黄斌欢. 留守经历与新工人的工作流动——农民工生产体制如何使自身面临困境[J]. 社会杂志, 2014, 34(5): &gt;88-104.</p><p>作者：洪蔚琳 <a href="mailto:hongweilin@mianduifuza.com">hongweilin@mianduifuza.com</a></p><p>编辑：曾鸣 于蒙 顾问：王天挺</p><p>封面插画：xiang 文中插图：曾杏 头图插画：Felipe Vargas</p><p>视觉：pandanap 版式：日月 创意：Vicson 运营：川丰</p><p>出品人/监制：曾鸣</p><p>我们开通了newsletter，欢迎大家注册！地址是：<a href="https://zhengmian.substack.com">https://zhengmian.substack.com</a></p><p>我们持续招募最好的作者、编辑、实习生，请联系：zhengmian@mianduifuza.com</p></blockquote>]]>
    </content>
    <id>https://editst.com/2023/working-for-30-years-like-this/</id>
    <link href="https://editst.com/2023/working-for-30-years-like-this/"/>
    <published>2023-07-08T11:20:02.000Z</published>
    <summary>
      <![CDATA[<blockquote>
<p>本文原载于微信公众号“正面连接”，后因“地图使用不规范”被删除，国内其他平台亦被删除，特此转载。</p>
</blockquote>
<p><strong>个人奋斗有用吗？在发了2500份问卷、访谈了200人之后，调研最终显示，努力并不能真正改变他们的处境，决定命运的主要是社会因素。</strong></p>
<p>我家小区的保洁老赵，来北京打工了23年，60岁时却没法退休。他未来的养老金每月只有100多元，因此打算打工到70岁为止。</p>
<p>他这代农民工，也是我国“第一代农民工”，生于70年代前，在八九十年代进城打工，不少人务工超过30年。但这8600万余人到晚年，情况和老赵大致相同。</p>
<p>老赵是河南驻马店人，2000年来到北京，那年他32岁，看过门，做过绿化，2007年来到我们小区做保安。如此又过了10年，49岁了，还没攒够钱结婚，一个人住在冬天没暖气、夏天潮湿发霉的10平米地下室。</p>
<p>我知道这些，是因为我当时在报社实习，需要出一篇农民工的稿子，而老赵是离我最近的农民工。</p>
<p>“我7年没有休假，一天工作10小时，一个月2700。这不是我一个人的情况，大家都是这样的。”临走他叮嘱，“这几句话你千万不能删”。</p>
<p>不止这几句，关于老赵的整个部分都被删掉了，原因是“负能量”。老赵不符合我们对于农民工生活的美好愿景，但这个人群的实际处境，比我们能想到的还要更糟。</p>]]>
    </summary>
    <title>如此打工30年</title>
    <updated>2023-07-08T12:46:24.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="随笔" scheme="https://editst.com/categories/%E9%9A%8F%E7%AC%94/"/>
    <category term="年终总结" scheme="https://editst.com/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    <content>
      <![CDATA[<p>拖到今年的最后一天才开始写，可能是因为今年发生的事情太多，都不知从何说起，回想时更多的是不真实感。年末时还是没逃过奥密克戎，现在还是咳嗽，那就边咳边试着写写今年的荒谬吧。想了很久怎么总结 2022 年，直到昨天看到网易新闻的年度总结视频，我觉得最简单的两个字就够了：活着，只是不同人想要活下去的难度太不一样了。</p><p>之前一直在想中国人民实在是太听话了，或许某些程度上这里的政府和这里的人民是互相选择的结果，但 11 月的一系列游行抗议，真正给了我一点希望，原来还有这么多勇敢的青年，我衷心感谢每一位勇敢的人。最后照例推荐一下今年声东击西的 <a href="https://etw.fm/2034">2022 年声音时光胶囊</a>。</p><span id="more"></span><p>年初的<a href="https://zh.wikipedia.org/zh-hans/%E4%B8%B0%E5%8E%BF%E7%94%9F%E8%82%B2%E5%85%AB%E5%AD%A9%E5%A5%B3%E5%AD%90%E4%BA%8B%E4%BB%B6">丰县生育八孩女子事件</a>仿佛预言了这一整年的魔幻，以及我们至今没得到令人信服的结果，而这件事也很快就“隐入尘烟”了。紧接着便是<a href="https://zh.wikipedia.org/zh-cn/2022%E5%B9%B4%E4%BF%84%E7%BE%85%E6%96%AF%E5%85%A5%E4%BE%B5%E7%83%8F%E5%85%8B%E8%98%AD">俄罗斯入侵乌克兰</a>，正式宣告今年的动荡不安，更是进一步告诉我们：以前的黄金岁月不可能回来了。之后由于<a href="https://zh.wikipedia.org/zh-cn/2022%E5%B9%B4%E6%B2%B3%E5%8D%97%E5%A4%9A%E5%AE%B6%E6%9D%91%E9%95%87%E9%93%B6%E8%A1%8C%E5%8F%96%E6%AC%BE%E9%9A%BE%E4%BA%8B%E4%BB%B6">河南村镇银行无法取款</a>，无路可去的储户们惊讶地发现自己的健康码变红了，只要权力有作恶的机会，又没有限制它的手段，那这种事情就一定会不断发生。直到 7 月 10 日数千储户在郑州抗议又被围殴，才有了后来的解决方案。这仿佛又一次告诉人们，要站出来抗议，才有机会解决问题。而<a href="https://zh.wikipedia.org/zh-cn/%E5%94%90%E5%B1%B1%E7%83%A7%E7%83%A4%E5%BA%97%E6%89%93%E4%BA%BA%E4%BA%8B%E4%BB%B6">唐山烧烤店打人事件</a>中受害者的失声，表现出个体在这个国家是多么渺小，哪怕有上亿人关注，依然能让你像不存在过一样。切身感受最深的，是自己在学校不合理封控时的无力感，没有能够发声的渠道，对于管理者轻飘飘的一个决定，没有任何挑战它、质疑它的机会，只能接受，是深刻体会了“时代的一粒沙”是那么的沉重。而就在昨天，网易新闻一个短短的年终总结短片，或许是因为剪辑了一些不该存在的新闻，也默默地被消失了。</p><iframe width="1236" height="695" src="https://www.youtube.com/embed/PaZ7M-aUx9I" title="【404视频】【CDTV】网易新闻2022年度事件盘点：幻想星辰大海不如活在当下" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe><p>很喜欢网易这个短片中的一段话，人不是活一辈子，不是活几年、几月、几天，而是活几个瞬间。记住这几个瞬间。</p><p>去年的年终总结开头写道“唯一的好消息或许是，最近的 Omicron 变种症状似乎较为轻微，并且感染后似乎能获得对其他变种的免疫力，或许 COVID-19 似乎真的在流感化”。现在看还是我太天真，奥密克戎变种确实战胜了所有其他变种，却没能改变我国优越的“动态清零”政策。这一年从天津开始，无数的地方一次又一次全市核酸、静态管理、社会面清零，然后再次循环，重复着西西弗斯式的悲剧，只是付出代价的是一位位普通的百姓。特别是<a href="https://zh.wikipedia.org/zh-hans/2022%E5%B9%B43%E6%9C%88%E4%B8%8A%E6%B5%B7%E5%B8%822019%E5%86%A0%E7%8A%B6%E7%97%85%E6%AF%92%E7%97%85%E8%81%9A%E9%9B%86%E6%80%A7%E7%96%AB%E6%83%85">上海从三月底开始的封城</a>，持续了两个多月，不仅有入户消杀、无人送菜、方舱脏乱等问题，更是对国内经济造成了巨大的影响。一个“四月之声”视频，不断被转发又不断被封禁，他们对人民的声音是如此恐惧。</p><iframe width="560" height="315" src="https://www.youtube.com/embed/mBdOXwdBn5s?controls=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><p>“动态清零”的次生灾害不止这些，<a href="https://zh.wikipedia.org/zh-cn/2022%E5%B9%B4%E8%B4%B5%E5%B7%9E%E7%9C%81%E4%B8%89%E9%83%BD%E5%8E%BF%E5%AE%A2%E8%BD%A6%E4%BE%A7%E7%BF%BB%E4%BA%8B%E6%95%85">贵州转运客车高速侧翻</a>没有改变什么，宁夏银川防疫人员跪压男子没有改变什么，<a href="https://zh.wikipedia.org/zh-cn/2022%E5%B9%B4%E6%96%B0%E7%96%86%E4%B9%8C%E9%B2%81%E6%9C%A8%E9%BD%90%E9%AB%98%E5%B1%82%E4%BD%8F%E5%AE%85%E6%A5%BC%E7%81%AB%E7%81%BE">新疆乌鲁木齐住宅楼火灾</a>也没有改变什么。直到有人终于决定站出来，用<a href="https://zh.wikipedia.org/zh-cn/%E5%8D%97%E4%BA%AC%E4%BC%A0%E5%AA%92%E5%AD%A6%E9%99%A2%E7%99%BD%E7%BA%B8%E8%A1%8C%E5%8A%A8">一张白纸</a>来表达自己的不满，当然，这也是不被允许的，可是全国各地的勇士用<a href="https://zh.wikipedia.org/zh-cn/%E5%8F%8D%E5%B0%8D%E5%8B%95%E6%85%8B%E6%B8%85%E9%9B%B6%E6%94%BF%E7%AD%96%E9%81%8B%E5%8B%95">一次又一次的行动</a>告诉他们：这个国家总有人敢站出来。</p><p>直到 12 月 7 日，原本“毫不动摇”的“动态清零”政策，突然放开了。不敢说前面的抗议活动起了多少作用，或许更多的推动来自于地方财政的捉襟见肘，但我坚信，以后不会缺少起身反抗的勇敢者，当我们剩下的仅有“活着”，还有什么好怕的呢。政策转变之快，让人瞠目结舌，更令人惊叹的，是政府从上到下毫无准备。由于之前对“四类药品”不合理的管控，导致各种常见药品从药厂到药店全都压低供应，以至于全国再现了 20 年初武汉一药难求的局面，或许这真的是个讽刺的大型轮回，结局复制开端，你以为会有什么好点的改变，发现这群人已经离普通人民太远，无法理解这一切。这三年可能算是幸运的，没有被集中隔离转运，也没有遇到长时间的封控管理，但我特别能理解疫情中受伤的每一个人，因为在这种环境下，总会轮到我的。</p><p>说来直到 2021 年，我依然相信这一切只是暂时的曲折，我们很快就能回到那个全球化飞速向前的梦幻岁月。现在却不得不接受要进入一个存量发展的时代，这点在秋招时的体验格外明显，公司招聘名额大幅缩减，由于我是跨专业找工作，加上没有实习经历，主流的互联网公司简历筛选都没法通过。好在凭着学校的名字，最终还是通过了几家公司的面试。很难说有满意的选择，也不断逼问自己，真的要选择那种一眼望到头的生活吗。</p><p>想想今年还干了什么，由于高度不确定的防疫政策，基本都没怎么出市，去影院也是屈指可数，本来就没什么上映的国产新片，引进片更是基本不存在，只是赶在年尾看了一下阿凡达：水之道，去激光 IMAX 影厅感受久违的视觉震撼。翻翻相册，今年的照片都格外少。愿明年可以顺利完成论文，腾出点时间四处逛逛，享受工作前最后的自由时光。去年说期待这个时候可以谢谢找到工作后的感想，现在反而没有太多想说的，甚至更多的是对学生生活的一点不舍。</p><p>今年就要结束了，这三年就要结束了，不要忘记它，不要忘记愤怒和泪水，用它们来抵抗正确的集体记忆，也提醒自己做一个勇敢的人。</p>]]>
    </content>
    <id>https://editst.com/2022/summary-2022/</id>
    <link href="https://editst.com/2022/summary-2022/"/>
    <published>2022-12-31T10:39:30.000Z</published>
    <summary>
      <![CDATA[<p>拖到今年的最后一天才开始写，可能是因为今年发生的事情太多，都不知从何说起，回想时更多的是不真实感。年末时还是没逃过奥密克戎，现在还是咳嗽，那就边咳边试着写写今年的荒谬吧。想了很久怎么总结 2022 年，直到昨天看到网易新闻的年度总结视频，我觉得最简单的两个字就够了：活着，只是不同人想要活下去的难度太不一样了。</p>
<p>之前一直在想中国人民实在是太听话了，或许某些程度上这里的政府和这里的人民是互相选择的结果，但 11 月的一系列游行抗议，真正给了我一点希望，原来还有这么多勇敢的青年，我衷心感谢每一位勇敢的人。最后照例推荐一下今年声东击西的 <a href="https://etw.fm/2034">2022 年声音时光胶囊</a>。</p>]]>
    </summary>
    <title>2022 年终总结：活着</title>
    <updated>2023-12-30T14:08:03.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="随笔" scheme="https://editst.com/categories/%E9%9A%8F%E7%AC%94/"/>
    <category term="年终总结" scheme="https://editst.com/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    <category term="读书" scheme="https://editst.com/tags/%E8%AF%BB%E4%B9%A6/"/>
    <content>
      <![CDATA[<p>这一年大半时间忙于准备秋招，书也没读多少，只有年初和年末读了一点，选几本印象深刻的记录一下。首先是关于中国经济政治的三本书。<a href="https://book.douban.com/subject/10587755/">《以利为利》</a>从中央与地方财政关系的角度详细描述了数次改革以及产生的影响，可以看到当前地方政府严重依赖土地收入的必然性，也指出了这种局面存在的问题。事实上本书出版于 2012 年，刚经历过 2008 年的“四万亿”大放水，各地房价已经历了一次猛涨，作者在书尾指出：</p><blockquote><p>本书的研究表明，地方政府的这种行为偏执并非是由官员的个人意志所导致的，而是政府间财政关系的一系列变化所带來的结果。这些关系的变化，在工业化、市场化迅速发展的背景下，造就了一种将土地、财政和金融结合在一起的“三位一体”的发展模式。这种模式一方面造就了持续不断的地方经济的高增长和城市繁荣，另一方面也在累积着巨大的金融风险和社会风险……</p></blockquote><p>现在来看，不仅房价更为离谱，其积累的风险也不止一次地冲击了各行各业，就在前几日刚刚又出台了拯救房地产行业的文件，未来如何，我们且看。</p><p><a href="https://book.douban.com/subject/26901114/">《中国国家治理的制度逻辑》</a>从组织关系的角度总结分析了当前各级政府的组织结构和逻辑，展示了中国政治结构自古以来的一种延续性，同时解释了许多地方政府看似不合理的行为背后的逻辑性。特别是其中“层层加码”和把一切问题“政治化”的倾向，对照疫情三年的种种现象，格外真切。</p><blockquote><p>官僚体制在社会中扩展。由此，官僚体制建立起国家与社会间的强大直接连接，国家直接面对社会，产生两个潜在危险。其一，在法理权威基础缺失的情况下，国家权力官僚化，与历史渊源深远的官僚体制上下联手融为一体，走向官僚专制的支配形式，而不是建立在（韦伯意义上）法理权威之上的官僚制支配形式。其二，官僚权力的膨胀与组织失败诱发卡理斯玛权威重登历史舞台，重回历史之旧辙。</p></blockquote><p>作者在最后指出的当代中国国家治理面临的两个危险，看一看今年连任的那位，只能感叹历史的轮回。这本书似乎是出版当年就被下架，但是作者在自己的学术官网放出了电子版，可以阅读。</p><p><a href="https://book.douban.com/subject/26824237/">《大国大城》</a>的作者用通俗的语言和图表对比告诉我们，世界各国的趋势都是城市化发展，特别是大型城市的集聚发展。我们不应该采用严格的户籍制度来限制人口流向大城市，而是应该正视这种趋势，进行合理的规划建设，进一步提高城市化水平。</p><p>还有一本同样上市没几天就被下架的书，<a href="https://book.douban.com/subject/35819419/">《可能性的艺术》</a>。我是在尚未出版前阅读了看理想的同名节目，作者对比介绍了不同国家的政治现状，以政治转型和国家能力为标尺，分析了成功和失败的不同案例。坦白说，本书的内容已经十分克制，出版时更是替换掉了在线版中的俄罗斯与苏联两部分，却仍遭到下架的命运。这也能看出当今出版行业乃至整个公共空间的逼仄与压抑。</p><p>最后是三本小说，<a href="https://book.douban.com/subject/35268281/">《其主之声》</a>和<a href="https://book.douban.com/subject/35330057/">《未来学大会》</a>是莱姆的两本科幻作品，但和常见的科幻相去很远。作者在科幻的外衣下探索了人类对世界的认知，对科学技术的利用和对未知的探索等等话题，可以从中看到无穷无尽的反思与回味。<a href="https://book.douban.com/subject/34998019/">《秋园》</a>是杨本芬在八十多岁写下的关于她的母亲秋园的故事。行文平淡，真切地记录了上世纪几代人的生活，虽是小说，却真实可感，让人感叹一代又一代中国人的命运和苦难。</p><p>祝好。</p>]]>
    </content>
    <id>https://editst.com/2022/summary-2022-read/</id>
    <link href="https://editst.com/2022/summary-2022-read/"/>
    <published>2022-12-29T10:42:07.000Z</published>
    <summary>
      <![CDATA[<p>这一年大半时间忙于准备秋招，书也没读多少，只有年初和年末读了一点，选几本印象深刻的记录一下。首先是关于中国经济政治的三本书。<a href="https://book.douban.com/subject/10587755/">《以利为利》</a>从中央与地方财政关系的角度]]>
    </summary>
    <title>2022 读书小结</title>
    <updated>2022-12-29T10:42:07.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="技术" scheme="https://editst.com/categories/%E6%8A%80%E6%9C%AF/"/>
    <category term="PGP" scheme="https://editst.com/tags/PGP/"/>
    <category term="AI Studio" scheme="https://editst.com/tags/AI-Studio/"/>
    <content>
      <![CDATA[<p>之前在<a href="https://editst.com/2022/vanity-pgp/">从 Yubikey 到 PGP 靓号计算</a>这篇文章中简单介绍了如何使用 GPU 进行科学算号，后经群友提示，发现可以利用<a href="https://aistudio.baidu.com/">百度飞桨 AI Studio</a> 提供的 Nvidia V100/A100 显卡来进行科学算号。估计是出于吸引用户的考虑，该平台提供了每日最多 16 小时的免费使用额度，只需要运行任意项目即可自动到账。</p><p>由于该平台无法直接安装 <code>libgcrypt</code>，需要手动编译安装两个计算库，之后即可正常使用，下面详细介绍一下配置的步骤。</p><span id="more"></span><p>首先前往<a href="https://aistudio.baidu.com/">百度飞桨 AI Studio</a> 注册账号，可以顺手完成新手任务获得 100 算力卡。之后新建一个<strong>脚本任务</strong>。打开项目，修改默认的 <code>run.sh</code> 文件，可参考下面。</p><p>注意下面使用的仓库的自带脚本 <code>generate_batch_keys.sh</code> 中的参数很可能不是你想要的，为了调整参数，可以在项目中新建一个脚本，然后复制 <code>generate_batch_keys.sh</code> 后进行修改，执行时把修改后的脚本移动到仓库中覆盖即可。计算结果的保存路径必须在 <code>/root/paddlejob/workspace/output/</code> 下，否则无法下载输出。</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/usr/bin/env bash</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">set</span> -e</span><br><span class="line"></span><br><span class="line"><span class="built_in">mkdir</span> libs</span><br><span class="line"></span><br><span class="line">wget --no-check-certificate https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.46.tar.gz</span><br><span class="line">wget --no-check-certificate https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.10.1.tar.gz</span><br><span class="line"></span><br><span class="line">tar -zxf libgpg-error-1.46.tar.gz</span><br><span class="line">tar -zxf libgcrypt-1.10.1.tar.gz</span><br><span class="line"></span><br><span class="line"><span class="built_in">cd</span> libgpg-error-1.46</span><br><span class="line">./configure --prefix=<span class="string">&quot;/root/paddlejob/workspace/libs&quot;</span> &amp;&amp; make &amp;&amp; make install</span><br><span class="line"></span><br><span class="line"><span class="built_in">cd</span> ../libgcrypt-1.10.1</span><br><span class="line">./configure --prefix=<span class="string">&quot;/root/paddlejob/workspace/libs&quot;</span> \</span><br><span class="line">            CFLAGS=<span class="string">&quot;-I/root/paddlejob/workspace/libs/include&quot;</span> \</span><br><span class="line">            LDFLAGS=<span class="string">&quot;-L/root/paddlejob/workspace/libs/lib&quot;</span> \</span><br><span class="line">            &amp;&amp; make &amp;&amp; make install</span><br><span class="line"></span><br><span class="line"><span class="built_in">cd</span> ..</span><br><span class="line"><span class="built_in">export</span> LIBRARY_PATH=<span class="variable">$LIBRARY_PATH</span>:/root/paddlejob/workspace/libs/lib</span><br><span class="line"><span class="built_in">export</span> LD_LIBRARY_PATH=<span class="variable">$LD_LIBRARY_PATH</span>:/root/paddlejob/workspace/libs/lib</span><br><span class="line"></span><br><span class="line">git <span class="built_in">clone</span> https://github.com/comicchang/gpg-fingerprint-filter-gpu</span><br><span class="line"><span class="built_in">cd</span> gpg-fingerprint-filter-gpu</span><br><span class="line">make</span><br><span class="line"><span class="built_in">chmod</span> +x generate_batch_keys.sh</span><br><span class="line"></span><br><span class="line">./generate_batch_keys.sh 0 100 /root/paddlejob/workspace/output/keys</span><br></pre></td></tr></table></figure><p>修改完成后把启动命令修改为 <code>bash run.sh</code>，然后提交，环境选择 V100 一卡即可，实测 <code>ed25519</code> 密钥的计算速度约为 <code>8.5 G hashes/s</code>，<code>cv25519</code> 密钥的计算速度约为 <code>4.4 G hashes/s</code>，比 Nvidia A5000 速度还要快一点。</p><p>提交后可以前往项目的历史任务中查看日志，为了方便在日志中查看计算结果，可以把 <code>gpg-fingerprint-filter-gpu</code> 程序输出重定向到 <code>/dev/null</code>。当你感觉时机成熟，可以手动终止任务，然后下载输出，就能看到传说中的 PGP 靓号了。祝算号成功。</p>]]>
    </content>
    <id>https://editst.com/2022/vanity-pgp-with-aistudio/</id>
    <link href="https://editst.com/2022/vanity-pgp-with-aistudio/"/>
    <published>2022-10-17T11:54:42.000Z</published>
    <summary>
      <![CDATA[<p>之前在<a href="https://editst.com/2022/vanity-pgp/">从 Yubikey 到 PGP 靓号计算</a>这篇文章中简单介绍了如何使用 GPU 进行科学算号，后经群友提示，发现可以利用<a href="https://aistudio.baidu.com/">百度飞桨 AI Studio</a> 提供的 Nvidia V100/A100 显卡来进行科学算号。估计是出于吸引用户的考虑，该平台提供了每日最多 16 小时的免费使用额度，只需要运行任意项目即可自动到账。</p>
<p>由于该平台无法直接安装 <code>libgcrypt</code>，需要手动编译安装两个计算库，之后即可正常使用，下面详细介绍一下配置的步骤。</p>]]>
    </summary>
    <title>使用百度飞桨 AI Studio 进行 PGP 靓号计算</title>
    <updated>2022-10-17T11:54:42.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="技术" scheme="https://editst.com/categories/%E6%8A%80%E6%9C%AF/"/>
    <category term="PGP" scheme="https://editst.com/tags/PGP/"/>
    <content>
      <![CDATA[<p>为什么一个群能从团购 Yubikey 发展到 PGP 靓号计算，是人性的扭曲还是科学的沦丧？请看本篇博客，带你走入科学算号的新天地。一句话总结：使用 CPU/GPU 进行哈希计算，得到具有你想要的 Key ID 的私钥。</p><p>我的个人实践结果为使用 <a href="https://www.autodl.com">AutoDL</a> 提供的一张 Nvidia 3090 显卡计算约 12 小时，得到 29 个后 12 位连号的 Ed25519 私钥，其中包含一个 14 位和三个 13 位连号的私钥。下面详细介绍我的科学算号过程。</p><span id="more"></span><p>为简单起见，本文只介绍使用 GPU 计算的过程，其核心思想是调用 CPU 来生成私钥，之后改变生成时间，使用 GPU 哈希计算得到新的 KeyID，符合指定标准则输出。</p><h2 id="配置环境">配置环境</h2><p>首先注册 <a href="https://www.autodl.com">AutoDL</a> 的账号，创建包含一张 Nvidia 3090 显卡的实例，建议选择镜像为 TensorFlow 2.9.0。新账号赠送 10 元代金券，约能<s>白嫖</s>运行 6 小时，实测 <code>ed25519</code> 密钥的计算速度约为 <code>10 G hashes/s</code>。然后通过 SSH 连接或直接使用 JupyterLab 里面的终端来使用。当然你也可以在任意包含 GPU 的机器运行。</p><p>安装对应库和算号程序，这里使用的是 comicchang 修改后的 <a href="https://github.com/comicchang/gpg-fingerprint-filter-gpu">gpg-fingerprint-filter-gpu</a> 程序。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">apt update &amp;&amp; apt install libgcrypt20-dev</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">git <span class="built_in">clone</span> https://github.com/comicchang/gpg-fingerprint-filter-gpu.git</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash"><span class="built_in">cd</span> gpg-fingerprint-filter-gpu &amp;&amp; make</span></span><br></pre></td></tr></table></figure><h2 id="运行脚本">运行脚本</h2><p>编辑项目中的 <code>generate_batch_keys.sh</code> 脚本，修改匹配条件。其默认为 <code>&quot;x{11}|xxxxxxy{6}|wwwwxxxxyyyyzzzz|xxxxy{8}|xxxxxxxxyyyy|(wxyz){4}|1145141919810|23{10}&quot;</code>，具体含义参考 README 内容，可以简单修改为 <code>&quot;x{12}&quot;</code>，即任意 12 位连号，也可以自定义其他的匹配条件。</p><p>之后运行该脚本，参数分别为 <code>GPU_INDEX</code>，<code>KEY_COUNT</code>，<code>OUTPUT_FOLDER</code>。只需时间和一点点运气，你就可以得到自己想要的靓号了。鉴于我运行了 12 小时就得到了一个 14 位的靓号，可能运气尚可吧。具体概率没有计算，欢迎留言补充。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ sh generate_batch_keys.sh 0 100 keys</span><br></pre></td></tr></table></figure><h2 id="缝合密钥">缝合密钥</h2><p>算号得到的私钥还需要小小处理一下才能正常使用。由于<strong>主钥生成时间必须早于子钥</strong>，因此要根据私钥的时间戳选择合适的主钥。当然你也可以用一个主密钥同时来签名、认证，但这样就<s>没法填满 Yubikey 的三个插槽</s>不够安全。</p><p>首先把生成的私钥导入 GPG，然后查看私钥的时间戳和 Keygrip，<code>pub</code> 行中 keyid 后面的数字就是时间戳。按照时间戳先后选好主钥后，先记录想要添加为子钥的 Keygrip 和时间戳。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">gpg --allow-non-selfsigned-uid --import keys/*</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">gpg -k --with-keygrip --with-colons</span></span><br><span class="line"></span><br><span class="line">pub:i:255:22:0AC618A17D75C510:1634712824:::-:::sca:::::ed25519:::0:</span><br><span class="line">fpr:::::::::D11B34303C672C61FD3DC52C0AC618A17D75C510:</span><br><span class="line">grp:::::::::B166ABC702EDA25664261C5269B942CFCF6C1307:</span><br><span class="line">uid:-::::::1E23F740019D67CEA575A8B356807D296C2D0536::NONAME::::::::::0:</span><br><span class="line">pub:i:255:22:5CDC2807F020BF12:1650264519:::-:::sca:::::ed25519:::0:</span><br><span class="line">fpr:::::::::FB5816BC225D252CCE20A8F75CDC2807F020BF12:</span><br><span class="line">grp:::::::::EAA9C15CEA82276F4925346702D211F3C4204ACA:</span><br><span class="line">uid:-::::::1E23F740019D67CEA575A8B356807D296C2D0536::NONAME::::::::::0:</span><br></pre></td></tr></table></figure><p>以上面为例，我们选择生成时间较晚的私钥 <code>5CDC2807F020BF12</code> 添加为子钥，其 Keygrip 和时间戳分别为 <code>EAA9C15CEA82276F4925346702D211F3C4204ACA</code>，<code>1650264519</code>，首先添加自己的 uid，之后添加子钥。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">gpg --edit-key --expert --ignore-time-conflict --faked-system-time=<span class="string">&quot;1650264519\!&quot;</span> 0AC618A17D75C510</span></span><br><span class="line"></span><br><span class="line">gpg: WARNING: running with faked system time: 2022-04-18 06:48:39</span><br><span class="line">Secret key is available.</span><br><span class="line"></span><br><span class="line">sec  ed25519/0AC618A17D75C510</span><br><span class="line">     created: 2021-10-20  expires: never       usage: SCA</span><br><span class="line">     trust: unknown       validity: unknown</span><br><span class="line">[ unknown] (1). NONAME</span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">把 5CDC2807F020BF12 添加为子钥</span></span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_">gpg&gt; </span><span class="language-bash">addkey</span></span><br><span class="line">Please select what kind of key you want:</span><br><span class="line">   (3) DSA (sign only)</span><br><span class="line">   (4) RSA (sign only)</span><br><span class="line">   (5) Elgamal (encrypt only)</span><br><span class="line">   (6) RSA (encrypt only)</span><br><span class="line">   (7) DSA (set your own capabilities)</span><br><span class="line">   (8) RSA (set your own capabilities)</span><br><span class="line">  (10) ECC (sign only)</span><br><span class="line">  (11) ECC (set your own capabilities)</span><br><span class="line">  (12) ECC (encrypt only)</span><br><span class="line">  (13) Existing key</span><br><span class="line">  (14) Existing key from card</span><br><span class="line">Your selection? 13</span><br><span class="line">Enter the keygrip: EAA9C15CEA82276F4925346702D211F3C4204ACA</span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">后续自行选择即可</span></span><br></pre></td></tr></table></figure><p>注意，时间需要指定成添加的子钥的时间戳，否则你会发现添加后的子钥指纹变成了新的，实际上这正是算号的原理。</p><p>基于本次算号结果，我现在使用的 PGP Key ID 是 <code>7C99999999999999</code>，完整公钥见<a href="https://editst.com/pgp">这里</a>。缝合好的密钥使用可以参考我的文章：<a href="https://editst.com/2022/canokey-guide/">Canokey 指南：OTP，FIDO2，PGP 与 PIV</a>。祝算号顺利。</p><h2 id="参考">参考</h2><ul><li><a href="https://www.dejavu.moe/posts/vanity-pgp/">某科学的 PGP 算号指南</a></li></ul>]]>
    </content>
    <id>https://editst.com/2022/vanity-pgp/</id>
    <link href="https://editst.com/2022/vanity-pgp/"/>
    <published>2022-10-15T16:06:48.000Z</published>
    <summary>
      <![CDATA[<p>为什么一个群能从团购 Yubikey 发展到 PGP 靓号计算，是人性的扭曲还是科学的沦丧？请看本篇博客，带你走入科学算号的新天地。一句话总结：使用 CPU/GPU 进行哈希计算，得到具有你想要的 Key ID 的私钥。</p>
<p>我的个人实践结果为使用 <a href="https://www.autodl.com">AutoDL</a> 提供的一张 Nvidia 3090 显卡计算约 12 小时，得到 29 个后 12 位连号的 Ed25519 私钥，其中包含一个 14 位和三个 13 位连号的私钥。下面详细介绍我的科学算号过程。</p>]]>
    </summary>
    <title>从 Yubikey 到 PGP 靓号计算</title>
    <updated>2022-10-17T11:28:06.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="转载" scheme="https://editst.com/categories/%E8%BD%AC%E8%BD%BD/"/>
    <category term="计划体制" scheme="https://editst.com/tags/%E8%AE%A1%E5%88%92%E4%BD%93%E5%88%B6/"/>
    <category term="自由" scheme="https://editst.com/tags/%E8%87%AA%E7%94%B1/"/>
    <content>
      <![CDATA[<blockquote><p>本文转载于公众号“火龙随笔”（各章节链接<a href="https://mp.weixin.qq.com/s/41JmCeEbfMTiSQkvbl4SIg">在此</a>），是对哈耶克《通往奴役之路》的缩译。此书在我的想读列表中已有许久，迟迟未翻开，无意中看到本文，和现时社会比对更显出哈耶克的先知先觉。本书出版于二战的末尾，国际社会面临向何处去的选择，如今站在全球化浪潮的末尾，面对被新冠彻底改变的世界，本书更具价值。</p><p>为方便阅读，同时以防万一，全文转载于此，以下内容均为“火龙随笔”原文，仅调整部分标点符号和格式，特此声明。</p></blockquote><p>本文内容缩译自哈耶克经典著作“The Road to Serfdom”, 1944，并参考了中国社会科学出版社 1997 版《通往奴役之路》的相关章节。本文提及的“社会主义”指的是德国和前苏联以计划经济为特征的社会主义。</p><span id="more"></span><h2 id="第一章：被遗弃的自由主义">第一章：被遗弃的自由主义</h2><p>人类文明之河正在逆转，不再流往我们期望的自由和繁荣，而是通往奴役和苦难。这令我们困惑不已：我们不是已经全力奔往光明了吗？我们不是一直在努力使这个世界更美好吗？为何结果与愿望如此大相径庭？</p><p>罪魁祸首究竟是谁？有人归咎于无良的资本家，有人归咎于某个邪恶的国家，还有人归咎于我们与之斗争了半个世纪的社会制度。我们能接受各种理由，唯独不肯承认这场危机的脓头就长在我们自己身上：<strong>正是我们的某些理想，带来了截然相反的结果</strong>。</p><h3 id="1">1</h3><p>今天，身披自由和极权两种战袍的国家正在殊死搏斗。但把视线放到战争以前，就会看到，这些对立的思想一起在欧洲文明中孕育。那时，文明就已危机四伏，自由、公正的价值理念都已饱受冲击，甚至在那些自由体制的国家里，也已涌现出对极权的狂热。</p><p>即使这次我们赢得战争，也只是让我们再次回到思想的分岔路口，如果选不出正确的道路，又将重蹈覆辙。</p><p>很难想象，德国、意大利、苏联竟然和我们的思想同根同源。真希望他们和我们完全不同啊，这样的话，他们那边发生的事情在我们这应该就不会发生了。然而，双方的不同之处其实很少。只是这些年在极权的浪潮下，他们的理念快速变化，才引发了无法调和的冲突。</p><p>过去的 25 年里，思想和社会秩序发生了方向性的改变，欧洲文明一步步地偏离它的根本理念。我们满怀希望积极推动的变革，一步步地把我们带到了恐怖的极权主义面前。</p><p>我们已经逐步放弃了经济的自由。尽管过去的经验表明，<strong>没有经济的自由也不会有个人自由和政治自由</strong>。</p><p>十九世纪最伟大的政治思想家托克维尔和阿克顿勋爵曾说，社会主义意味着奴役。但我们完全没有意识到这两者之间的关联。我们把先哲的警告抛到脑后，朝着社会主义的方向稳步前进。现在，一种新的奴役形式已经出现在眼前。</p><h3 id="2">2</h3><p>穿过十九世纪，透视更长的历史就会清晰地看到，往社会主义的转向，完全背离了西方文明的进程。</p><p>我们背离了科布登和布莱特，背离了亚当斯密和休谟，背离了洛克和弥尔顿。我们不仅放弃了十八、十九世纪的自由主义，还放弃了从伊拉斯谟和蒙田、西塞罗和塔西佗、伯里克利和修昔底德那里继承来的个人主义。</p><p>今天，大家总把个人主义和自私自利联系在一起，这是彻底的误解。<strong>个人主义的基本特点是尊重个人，尊重个体差异化的想法和品味，它的对立面是集体主义</strong>。</p><p><strong>“宽容”是形容个人主义最贴切的词</strong>，在宽容的社会制度下，每个人都可以选择自己的生活方式。但是，在极权国家兴起之后，宽容就日渐消亡了。</p><p>纳粹头领说，国家社会主义是反文艺复兴的。的确如此。因为文艺复兴运动，复兴的就是古典文明里的个人主义。古典哲学和基督教里都含有个人主义的要素，文艺复兴重新点燃了这些要素，使其成长为西方文明的重要组成部分。</p><h3 id="3">3</h3><p>过去，个人主义的发展和商业的发展密切关联。从意大利北部的商业城市开始，个人主义随着商业往西部、北部传播，途经法国和德国西南部，抵达低地国家和英伦三岛。在没有专制统治的地方，个人主义便落地生根，成为国家政治生活的基础。之后，它又继续扩张，向西传到美洲新大陆，向东传到欧洲中部。</p><p>欧洲近代历史里，社会发展的总体方向，是把个人从陈规旧俗中解放出来。大家渐渐发现，每个个体的自发工作形成了整体的良好的社会经济秩序。随后，经济学家们认识到了经济自由的价值。由于经济自由源自对个人的解放，所以说，经济自由是政治自由带来的意外礼物。</p><p><strong>自由主义的基本原则是：尽量多让社会自发，尽量少用强制力</strong>。让人们主动去创建一种制度，而不是让人们被动接受一种制度。自由主义希望解放个体，让大家自由发展和竞争。</p><p>解放个体带来的最大益处，可能要数科学的大发展。以前，主流思想禁锢了新知识的产生，主流的是非观念阻碍了个人的创新探索。后来，随着个人自由的扩张，科学才得以大踏步前进，在近 150 年里使世界大变样。</p><h3 id="4">4</h3><p>19 世纪的极权主义者孔德说：西方文明的长年病根，就在于个人对集体的反叛。是的，个人主义的确是建造西方文明的根本力量。个人主义使人们认识到自由的重要性，只要解开集体捆绑在个人身上的锁链，社会便会迅速发展。就像过去两百年里发生的，在个人主义的推动下，人类的物质文明高歌猛进，惠及所有社会阶层。</p><p>随着认知水平的提升，人们开始看到个人主义的瑕疵，而且不愿宽容这些瑕疵。但是，只拿瑕疵来评价个人主义，是典型的一叶障目不见泰山。毫无疑问，个人主义的成就远超出人们的期望。到二十世纪初，西方世界的普通劳工就能享有一定程度的舒适、安全、独立的生活了。在 100 年之前，这是不可想象的。</p><p>已经取得的成就让人们信心大涨，开始相信自己有能力掌控人类的命运，开始嫌进步的速度不够快。越来越多人认为，过去推动社会进步的自由主义，现在成了进步的障碍。他们觉得，要想进一步发展，唯一的办法就是重新塑造社会。</p><p><strong>很少有人考虑怎样改进，大家关心的是打碎重来</strong>。就像只热衷于全新事物的年轻人一样，人们对于深入了解当前社会缺乏耐心和兴趣。</p><p>我们对社会的态度彻底地改变了，完全背离了自由发展的趋势，完全放弃了创造出西方文明的个人主义传统。我们不再尊重社会自发的力量，而是想要消除市场机制、废弃个人主义，力图将社会力量集体化，以实现宏大的计划。美其名曰：为自由而计划。</p><h3 id="5">5</h3><p>在过去的两百年间，英国的思想曾往东方蓬勃扩展，自由法则仿佛要造福全球。然而，从 1870 年开始，英国在政治和社会领域不再领先，英国思想的影响力开始衰竭。之后的六十年里，德国成了世界的中心。它在物质文明领域取得了巨大的进步，并且涌现出众多广受赞誉的思想家和科学家。</p><p>早在纳粹兴起以前，德国人就蔑视以自由主义、民主政治、个人主义、自由贸易等为内涵的欧洲文明。他们认为个人主义不过是为自私自利辩护，而自由贸易则不过是英国人敛财的幌子。</p><p>德国的思想开始往东西扩张，似乎要统治二十世纪的思想界。无论是黑格尔还是马克思，无论是李斯特还是施穆勒，无论是桑巴特还是曼海姆，无论是激进的社会主义还是温和的“计划”，德国的思想广受欢迎，德国的社会制度也四处被模仿。</p><p>社会主义虽然并非源于德国，但也是在德国完成的。德国曾在社会主义的发展上起了重要的领导作用，但我们很多人居然都不记得了。如今，德国把社会主义当成敌人，但在上一代，社会主义思想弥漫整个德奥，德国议会里甚至有一个巨大的社会主义党。</p><p>今天，无论苏联还是英美的社会主义者，他们只是拾德国人的牙慧，他们谈的问题早就被德国社会主义者谈烂了。</p><h2 id="第二章：伟大的乌托邦">第二章：伟大的乌托邦</h2><p>把人间变成地狱的，正是对天堂的向往。——F·荷尔德林</p><h3 id="1-2">1</h3><p>今天，社会主义已经取代自由主义成为多数进步人士的追求。人们已经遗忘它诞生时鲜明的独裁特征。那时它被认为是自由最大的敌人，如今却在自由的旗帜下被拥抱。</p><p>奠定现代社会主义基石的法国作家们，都坚定地认为，他们的主张必须靠强大的独裁政府来推行，要用强迫的手段改造社会，把社会按照阶级进行分层组织和管制，并强制统一思想。他们把思想自由看作万恶之源，现代计划主义第一人圣西门甚至说，对于不服从者将“给予畜牲的待遇”。</p><p>法国政治家托克维尔早就意识到，社会主义和民主政治之间无法调和，因为它们对个人自由的态度截然相反。托克维尔说：“民主制度扩大个人自由的范围，社会主义则限制个人自由的范围；前者把一切可能的价值赋予个人，后者则把个人当作一个工具、一个数字；表面上两者都主张平等，但是，前者在自由里求平等，后者在奴役里求平等。”</p><h3 id="2-2">2</h3><p>为了利用人们对自由的渴望，社会主义者许诺所谓的“新自由”。他们说，社会主义将使人类征服“必然规律”，实现“真正的自由”。为了让这些说辞言之成理，他们不得不篡改“自由”这个词的含义。“自由”的本意是免于被他人专断、强迫，而“新自由”则是指征服自然，解除经济制度的束缚，打破“物质匮乏的枷锁”。</p><p>照这么说，“新自由”几乎就是力量与财富的别名。那些许诺“新自由”的人总是说，社会主义社会的物质财富将极大丰富。但是，我们应该知道，只从自然界着手，并不能立即带来经济自由，这个许诺实际上将导向对财富的平均分配。所谓的“新自由”，不过是“均贫富”的马甲，穿上这个马甲，社会主义者就能借用“自由”这个词的力量了，尽管词义已被篡改，可是大部分人并未意识到。</p><p>许多社会主义者真心实意地相信他们能够带来自由。今天，“新自由”的许诺，掩盖了社会主义和自由主义的根本冲突，吸引越来越多的自由主义者踏上了社会主义道路。绝大多数知识分子认为社会主义是自由主义的传承演进，当有人指出社会主义会通往奴役时，他们完全无法接受。</p><h3 id="3-2">3</h3><p>近些年来，也有人意识到了社会主义的可怕后果。美国评论家沃尔特·李普曼写道：“如果人们把自己的自由交给一个组织来强制管理，就别指望过上丰富多彩的生活，随着组织管制的加强，多样的生活终将变得整齐划一，这就是用计划加独裁来处理人类事务的结局。”</p><p>还有一些观察家发现，“共产主义”（社会主义的高级阶段）和“法西斯主义”有很多相似之处。</p><p>管理大师彼得·德鲁克指出：“实践已经表明，共产主义并不通往自由和平等。俄国步的是德国的后尘，滑向了极权、糟糕、不经济、不自由、不平等的社会。共产主义与法西斯主义是相同路径上的两个阶段，当共产主义的幻想破灭之后，就会进入法西斯主义阶段。这在斯大林的俄国和希特勒的德国都已得到证明。”</p><p>在 1933 年之前的德国，以及 1922 年之前的意大利，表面上看起来，共产党跟纳粹或法西斯的斗争确实比跟其他党派频繁，但背后的原因是他们在争抢同种思维模式的人。毫不奇怪，他们彼此都把对方当作潜在的招募对象，都认为对方是被异端邪说蛊惑了的好材料。</p><p>很多法西斯和纳粹的头领一开始是社会主义者，后来变成法西斯分子和纳粹分子。比如墨索里尼、赖伐尔和吉斯林。下层的普通成员里，有这样经历的人就更多了。在德国，众所周知，一个年轻的共产主义者变成一个纳粹分子，或者反过来，都是相当容易的。他们真正的敌人是那些老式的自由主义者，他们与这些人毫无共同之处，也完全没办法说服这些人。</p><h3 id="4-2">4</h3><p>有些人看到了德意两国从社会主义往法西斯主义的转变过程，他们明白了这两种制度的关联。可是，在英国，大部分人依然相信社会主义可以和自由共存，大多数社会主义者本就心怀自由之梦，如果他们认识到社会主义方案一旦实现，自由就会毁灭，他们肯定会浪子回头。</p><p>希特勒时期的德国，自由主义已经形同死亡，而判处自由主义死刑的，正是社会主义。尽管如此，很多人仍旧没有意识到，自由主义和社会主义是两种不可协调的理想，他们还在正儿八经地讨论像“个人主义的社会主义”、“民主的社会主义”这样一些内涵上自相矛盾的概念。</p><p>放弃幻想吧，“民主的社会主义”只是一个乌托邦，永远不可能实现，在这条道路上的奋力前行，只会打开潘多拉的魔盒。</p><h2 id="第三章：社会主义、计划机制和自由主义">第三章：社会主义、计划机制和自由主义</h2><p>社会主义者信仰两种截然不同甚至也许相互矛盾的东西：自由和组织。——埃利·阿列维</p><h3 id="1-3">1</h3><p>在讨论之前，我们先来澄清社会主义这个概念。</p><p>社会主义这个词包含着两重涵义：首先，它代表一些理想目标，如社会正义、更大平等和保障等（相当于“世界大同”，译者注）。其次，对大部分社会主义者而言，“社会主义”也意味着为了“世界大同”所必须采用的、特定甚至唯一的方法，即废除私有企业、废除生产资料私有制、创造“计划经济”、用中央计划机构取代企业家等。</p><p>很多人自称为社会主义者，但实际上他们只是认同“世界大同”这个理想目标，并不理解或关心这些目标到底如何实现，以及需要付出什么代价。但是，社会主义目标的实现方法和目标本身一样重要。很多反对社会主义的人，对它的理想目标是认同的，所担心的是目标的实现方法将对其它价值造成伤害。因此，<strong>关于社会主义的争论主要是它的实现方法导致的，而不是它的“世界大同”理想导致的</strong>。</p><p>令情况更复杂的是，作为社会主义改革主要手段的“经济计划”，可以被用于许多其它目的。把好东西分配给某些特定群体（某个种族、某些党派成员、贵族阶级）和为了实现我们心中的正义而采用的平均分配，就方法本身而言是一模一样的。</p><p>考虑到上述情况，为了避免概念混淆，也许应该把社会主义目标的实现方法称为集体主义。社会主义者和自由主义者之间的争论，主要是关于这种集体主义的方法的争论，而不是关于世界大同的目标的争论。本书中提及的一切相应后果，也都源于集体主义的方法，与社会主义的目标没有关系。</p><h3 id="2-3">2</h3><p>另一个需要特别澄清的概念是“计划机制”。“计划机制”之所以能打动人心，很大程度是由于“计划”这个词涵义的模糊性。</p><p>我们通常说的计划，是指每个人利用自己的预见，尽可能理性地处理问题。人人都是计划者，按照自己的计划开展着各自的活动。但是，这并不是社会主义者所说的计划，社会主义者要求的是：根据一个单一的计划指导一切经济活动，管理所有社会资源，以便达成特定的目标。本章将使用“计划机制”来描述这一概念，以便区别于我们通常说的计划。</p><h3 id="3-3">3</h3><p>还需要避免混淆“自由主义”和自由放任。</p><p>自由主义主张尽量用竞争机制来协调人类的各种努力，而不是让事态放任自流。自由主义相信有效的竞争是指导个人努力的最好方法。自由主义不否认，甚至强调，为了竞争能有益地运行，需要一种精心设想的法律框架。自由主义也不否认，无法创造出有效竞争时需要用其它方法指导经济活动。</p><p>但是，自由主义反对用其它缺陷更大的方法来替代竞争机制，不仅因为竞争在大多数情况下都是最有效率的方法，而且因为竞争是唯一的、不依靠当局的强制或干预就可以协调我们各类活动的方法。<strong>这就是竞争的一大优势——不再需要“有意识的社会控制”</strong>。</p><p>用竞争来对社会进行组织，能够免除很多对经济生活的强制干预，但竞争也允许某些干预发挥作用，甚至会要求政府争取特定行动。</p><p>为什么要强调尽可能减少干预呢？因为，只有人们能够自由地生产、买卖任何有可能被生产和买卖的东西，只有行业进入的机会向所有各方平等开放，竞争才能持续有效。任何控制特定商品的价格或数量的企图，都会使竞争无法有效地协调个人的行动，因为这时价格的变化不再能体现市场环境的变化，无法为个人的行动提供可靠的指南。</p><p>有些措施只是在规定哪些生产方法可被使用，只要它对所有潜在的生产者都产生同样的影响，而且它的目的并不是为了控制价格和产量，那么，尽管会增加成本或投入，这些措施还是值得采用的。例如禁止使用某种有毒物质、限制工作时长和要求提供某种卫生设施等，这些措施与维持竞争完全兼容。在这种情况下，需要考虑的是，这些措施带来的社会利益是否大于产生的社会成本。</p><h3 id="4-3">4</h3><p>令人遗憾的是，迄今为止，大家更关注的是如何减少对竞争的干预，而非如何创造竞争运行的条件。</p><p>竞争机制要能正常运行，不仅需要足够的诸如货币、市场、信息渠道这些私人企业很难提供的基础工具，还需要既能维护竞争，又能使竞争尽量发挥正面作用的法律体系。光是承认私有产权和契约自由是远远不够的，还需要用法律体系对不同事物的产权进行精确界定。</p><p>法律制度如何才能让竞争体系运行得更有效率？我们对这个问题缺乏系统研究。另外，公司法、专利法方面的缺失，不仅使竞争低效，甚至在有些领域已经摧毁了竞争。</p><p>的确存在一些领域，由于无法使所有者从其财产或提供的服务中获取收益或承担损失，以致于无法通过法律创造出可行的私有产权和市场竞争体系。在这些领域里，必须使用竞争以外的方式来提供服务。</p><p>例如，在道路上设置路标甚至道路本身的费用，无法由使用者单独付费；砍伐森林、某些耕种方法或者工厂的烟尘噪音造成的损害，也无法限定为只由财产所有者承担，或通过自愿协议补偿受害人。在这种情况下，我们必须寻找竞争机制以外的替代方案。但在那些竞争能够发挥作用的地方，则不应压制竞争。</p><p>创造条件使竞争尽可能有效、在竞争不能行之有效的地方加以补充、提供市场方式无法提供的那些服务（正如亚当斯密所说，这些服务“虽然有利于社会，但是服务者将入不敷出”），这些任务已经足够为国家提供宽广、无可争议且应当作为的活动空间了。</p><p><strong>有效的竞争体系和其它体系一样，需要精心设计和持续调整的法律框架</strong>。即便那些使竞争能够运行的最基础的条件，如防止欺诈或欺骗（包括利用无知而剥削），都给立法活动提供了伟大且远未达成的目标。</p><h3 id="5-2">5</h3><p>然而，尽管在创造出能让竞争制度良性运行的合适框架方面还有大量工作需要完成，很多国家的政府却已掉转方向，不再努力使竞争得以运行和加以补充，而是试图用一些完全不同且无法调和的原则来替代竞争。</p><p>还有一些社会主义者，出于对集中计划可能消灭自由的恐惧，想象出一种“竞争性社会主义“，希望把废除私有财产和保留个人自由两者融合起来。但这种想法有着内在矛盾，控制所有生产资源而不决定这些资源将为谁和由谁来使用，这是不可想象的。融合体系下，竞争将只是一种摆设。</p><p>在从自由竞争转向中央计划的过程中，还必将产生一种更坏的、中央计划者和自由主义者都不满意的形态：无政府的工团组织。在这种组织中，竞争已经被压制了，而计划则由各个产业中相互独立的垄断者制定。由于人们只是因憎恨竞争而联合起来，但对该做什么却没有一致意见，出现这种形态是必然的。</p><p>随着一个行业接一个行业中的竞争被破坏，消费者只得听任那些组织得更好的行业里的资本家和工人联合垄断的摆布。一旦到了这种阶段，除了回复到竞争外，唯一的替代办法就是由国家来实施越来越严密和完全的垄断。</p><p>英国现在正在迅速接近这个阶段，而且因为战争大大加速了。随着时间的推移，各种严重问题和危险将会越来越明显。</p><p>大多数人对“集中管理经济活动”这一理念仍然感到惊骇，不仅是因为这项任务非常困难，而且因为每一件事都要由一个独一无二的中心来加以指导的想法本身就令人恐惧。但我们实际上正在向这种状况快速前进，因为很多人幻想能在“原子级别“的自由竞争和集中管理之间找到中间道路。这种中间道路的幻想貌似合理，非常容易打动明白事理的人们。</p><p>然而我们要明白，尽管竞争制度能容忍一定程度的管制，但一旦和集中计划融合，竞争就再也无法继续有效地指导生产了。况且，“集中计划”也不是一种可以小剂量服用就能生效的药剂。竞争和集中计划二者如果是不完全的，都将成为拙劣且无效的工具。两者如果混合起来使用，其结果反而比始终只取其一还要糟糕。</p><p>换句话说：<strong>只有在为竞争而计划，而不是运用计划反对竞争的时候，计划和竞争才能够结合起来</strong>。</p><h2 id="第四章：计划机制真的不可避免吗？">第四章：计划机制真的不可避免吗？</h2><h3 id="1-4">1</h3><p>大部分计划者都觉得计划机制并非心中所愿，但他们相信计划取代竞争的趋势不可避免。这种“计划机制不可避免”的笃信缺乏证据支撑，向垄断和计划机制的发展并不是什么我们无法控制的客观因素导致的，它是半个世纪以来，相关观点不断发酵传播并主导了我们政策制定的结果。</p><p>对“计划机制不可避免”最常见的论述是：技术进步导致越来越多的领域无法开展竞争，人们只能在私人垄断和政府计划之间做两难选择。这种信念的主要来源是马克思主义关于”产业集中化“的学说。</p><p>过去五十年垄断持续增长，越来越多领域竞争受限，这的确是事实。但最重要的问题是，垄断增长到底是技术进步的后果，还是国家政策的后果？从垄断增长的实际过程不难看出，政策导致垄断的可能性更大。</p><p>“技术进步导致垄断增长”的论证逻辑是：在现代化大生产条件下，大企业相对小企业的效率优势越来越明显，它的单位生产成本不断递减，导致小企业无法生存，最终只剩下少数巨头。</p><p>这种看法太片面，没有注意到技术进步带来的多维度变化，也缺乏严肃的实证研究支持。我们目前能获得的最好的证据，是美国“全国经济临时委员会”这家显然没有自由主义偏好的机构对“经济力量集中化”的研究。这份基于广泛事实研究的报告指出：“现有的任何证据都很难得出”高效率的大规模生产将导致竞争消失的观点。</p><p>原文摘要如下：</p><p><em>“……大企业的高效率并未得到证明……规模经济即使存在，也不必然导致垄断……效率最高的生产规模，在远未形成垄断时就能达成。大规模生产的有利条件并不必然导致竞争消失。反而应当注意到，促使垄断形成的往往并非大规模低成本生产，而是共谋协议和公共政策。一旦这些协议失效和政策反转，竞争条件就能够被修复。”</em></p><p>对英国进行类似的调查会得到相似的结果。如果你注意到垄断者为了维持其有效控制，会如何热心、频繁地寻求国家权力的帮助，你就绝不会相信垄断的形成是不可避免的。</p><h3 id="2-4">2</h3><p>如果技术进步或资本主义演化必然产生垄断的话，垄断应该首先在最发达的经济体内出现。但实际上，垄断最早出现在美国和德国这样相对年轻的工业国家。</p><p>在被看成资本主义发展过程典型的德国，卡特尔和辛迪加这样的垄断组织，是从 1878 年之后在有意识的系统政策扶植下才发展起来的。政府不仅出台了保护政策，甚至用了强制手段，催生出管制价格和销售的垄断组织。在德国政府的帮助下，“科学规划”和“工业自觉组织”等社会实验得以实施，并导致了巨型垄断组织的出现。在美国，同样是高度保护性的政策导致了类似垄断的出现。</p><p>英国在 1931 年实施普遍保护政策后的变化，也清楚表明垄断更多是政策实施的结果。在此之前，除了少数受保护的行业，英国的整体经济还是充分竞争的，至少在 1929 年前，就业和一般经济活动都还保持良好。但在普遍保护政策实施后，垄断就以惊人的速度增长，并使英国工业变化到了公众几乎无法了解的程度。</p><p>德国为了实现计划机制的理想千方百计地遏制竞争，他们正沿着 19 世纪思想家们（尤其是德国思想家，如桑巴特）设计的路线图，向完全计划社会前进。过去 60 年或 80 年思想发展史充分说明，<strong>在社会演化中，没有什么东西是不可避免的，使其成为不可避免的是思想</strong>。</p><h3 id="3-4">3</h3><p>“技术进步导致计划不可避免”的另一种解释是：现代工业文明的复杂性带来了一些新问题，这些问题只有通过集中计划才能解决。不可否定，有些问题（例如现代城市的公用事业问题）在竞争机制下未能充分解决，但要求中央计划的那些人心目中，“公用事业”这类问题并不是最重要的。他们所建议的是，由于越来越难清晰地了解完整的经济过程，需要由某种中央机构来协调才能避免社会生活在混乱中解体。</p><p>这些人完全没有理解竞争的作用。<strong>恰恰是由于现代劳动分工足够复杂，才使竞争成为唯一能实现充分协调的手段</strong>。如果条件简单到一个人或一个机构都能了解所有相关事实的话，进行控制或计划就没什么困难了。正是由于需要考虑的因素多不胜数，无法获取全景概括，去中心化才变得不可避免。没有任何人能够有意识地平衡诸多独立个体决策时所要考虑的因素，所以无法用某种“有意识的控制”进行协调。</p><p>没有任何中心可以完全了解、及时搜集和反馈影响各种商品供求关系的变化细节，所以必须要有某种机制能够自动记录所有个体行动的相关后果。这些后果既是每个个体的决策导致的，又指引着每个个体的决策。这正是价格机制在竞争环境下起的作用，没有其它任何系统能达成哪怕只是近似的效果。</p><p>价格机制使企业家只需要像工程师注视仪表盘那样，靠观察少数价格的变动，就足以调整自己的行动。<strong>整体越复杂，我们就越需要依靠价格体系这种非人为的机制来传递分散在个体中的知识并协调行动</strong>。如果依赖笨拙、原始和容量有限的有意识中央计划的话，我们的工业体系永远发展不到今天这样高度的差异化、复杂度和灵活性。</p><p>要注意的是，价格机制只能在充分竞争的环境下起作用。我们的分工能达到现代文明所需要的如此精细的程度，是由于它超过了人类有意识创造的能力，是人们无意中摸索出来的。分工的进一步发展，只会使我们更需要某种不依赖有意识控制的机制。</p><h3 id="4-4">4</h3><p>还有一种观点认为，竞争会阻碍技术的进步，只有在垄断的保护下，新技术才能发展起来。这种说法并非毫无道理。例如，如果所有英国人都开同一种汽车，也许英国能生产出比美国更好更便宜的汽车；如果所有人都只使用电力的话，也许电力会比煤炭或煤气更便宜。通过强制的标准化或限制过多的选择，我们在某些领域生产效率的提升也许足以补偿消费者选择受限的损失，某些新发明也可能因此更快普及。</p><p>但是，我们所付出的短期代价，是为了在未来能享有更多选择。即使某些发明能给我们巨大的力量，但为此就要破坏我们最宝贵的遗产——自由，也是十分荒谬的。如果我们希望保全自由，就必须比任何时候都更为珍惜它，并愿意为此作出牺牲。</p><h3 id="5-3">5</h3><p>既然没有客观事实逼迫我们走向计划机制，那为什么技术专家中支持计划机制的比例如此之高呢？</p><p>要知道：几乎每个技术专家的理想，如果能入选为人类社会的单一目标的话，都是相对容易实现的。世界上有无数我们认为既值得追求又有实现可能的美好事物，但哪怕我们付出毕生努力通常也只能实现少数几个。</p><p>正是由于在自己领域里的梦想经常受阻，专家们才转而支持计划机制，希望把自己关心的事纳入整体计划。他们不愿跳出自己的专业背景和眼前利益，花费脑力去理解为什么这些好事情无法同时实施，为什么达成其中一项往往意味着要牺牲掉其它好几项。</p><p>的确，在一些计划/半计划国家里，我们能看到计划机制的成功案例，耳熟能详的是德国和意大利的高速公路。但是，特定领域的技术成就并不能证明计划体制的整体优越性，某些和整体条件并不相称的极端技术成就，反倒是资源错配的证明。如果你在著名的德国高速公路上开过车，你就会注意到，这些路上的车流量还不如英国的很多二级公路。</p><p>很多专家幻想他们所关心的项目在计划机制下能得到更多支持。我们每个人都会觉得自己个人的价值排序不仅仅适用于我们自己，只要和我们讨论的人足够“理性”，我们就能说服他们支持我们的价值排序。</p><p>喜欢田园风光的人希望能够保持传统风貌去除那些现代工业造成的“噪点”，热衷健康的人却偏偏希望清理掉那些风景如画但卫生状况可疑的古老茅屋；迷信效率的人执着于最大程度的专业化和机械化，理想主义者为了发展个性却渴望尽可能保留独立工匠……</p><p>这些人都知道他们的目标只有通过计划体制才能实现，因此支持计划体制。不过，如果计划体制真的能够运行，这些目标之间隐藏的冲突就会暴露无遗。</p><p>“向计划体制转变”的思潮如此有力，也因为它吸引了很多单一思维的理想主义者。他们献身于某种单一的任务，并容易夸大这个任务的社会价值。他们对计划体制所寄予的期望，往往是对社会片面观察的结果。</p><p>我并非要贬低理想主义者的价值，他们非常值得尊敬。但正是这些值得尊敬、渴望对社会进行计划的人，如果得到允许，他们将成为最危险的人和最不能容忍别人计划的人。<strong>从圣洁的、单一思维的理想主义者到狂热分子往往只有一步之遥</strong>。如果让世界上每个领域最著名的专家毫无阻碍地去实现他们的理想，那就再没有比这个更难忍受和更不合理的世界了。</p><h2 id="第五章：计划与民主">第五章：计划与民主</h2><p>有的政治家试图指导每个人使用自己的资本，这不但是瞎操心，而且是越权。这样的权力就算交给议会都令人不放心。如果一个自认为有这种能力的愚蠢狂妄之徒掌握了这种权力，那就危险到极点了。——亚当·斯密</p><h3 id="1-5">1</h3><p>所有的集体主义组织，都是为了一个明确的社会目标而被精心构筑起来的社会劳动者组织。集体主义和个人自由主义冲突的关键是：集体主义者们想要组织全部资源实现统一的社会目标，他们拒绝承认存在个人至上的领域。集体主义者认为，如果社会缺少有目标有意识的指导，就会被一个个冲动的、自我的、没有责任感的个人所左右。</p><p>社会目标通常被表达为模糊的“公共利益”、“普遍福祉”或者“共同利益”，但这些名词没有明确的定义，无法决定具体的行动方向。</p><p>千百万人的福利是无法界定的各种因素的组合，每个人的每种需求都要占据一席之地。如果要根据一个单一的计划指导人们的所有行动，就需要一个十分完整的价值序列和道德准则。如果使用所有的社会财产来推进某个单一的计划，就必定需要一个可以指导一切的道德准则。但这样的道德准则根本不存在，人们总是在不同的价值之间选来选去，没有理由也没有必要对人们“应该干什么”规定标准答案。</p><p>随着文明发展，以道德名义束缚个人行为的陈规旧忌越来越少，个人自由的范围越来越大。任何详细的道德准则或单一的经济计划都与历史趋势背道而驰。</p><p>没有可以包罗万象的标尺，也没有可以了解所有需求并权衡轻重的智者。任何人只能考察有限的领域，认识有限的需求。每个人的价值尺度都是局部的、相互不同甚至矛盾的。基于这个毫无争议的事实，个人主义主张在特定的范围内允许个人遵循自己而不是他人的价值偏好行事。在这个特定范围内，个人的目标是至高无上的，无须屈从于他人的任何指令。个人主义的立场实质就是：承认个人是其目标的最终决断者，个人可以按自己的意图支配行动。</p><h3 id="2-5">2</h3><p>认可个人主义并不代表不认可社会目标。人们会因为一些目标联合起来，社会目标不过是个人为了满足自身欲望所接受的共同目标。但共同目标不是个人的终极目标，只是个人为了实现自身目的而使用的手段，人们只是对于这个手段而不是终极目标更容易达成共识。共同行动应当仅限于人们一致同意的领域。</p><p>当人们联合起来时，就把他们的目标赋予了像国家这样的组织，但赋予的目标有其特定和有限的领域，仅在这个领域中它才是至高无上的。领域越大，人们达成一致的可能性越小。如果无限地扩大公共行动领域，则必然伤及个人在自己领域里的自由。一旦国家控制的公共部分超过了一定限度，国家行为就会支配整个体系，导致每个人的目标都需要依赖于国家行动才能实现。</p><p>计划机制的目标会被冠以“共同福利”这样的称呼，这是对缺乏真正一致性的掩饰。但当要把单一计划转换为一个个具体计划时，这种不一致性就会暴露出来。人们同意要有一个中心计划，但是在目标上却达不成一致，就像一群人决定一起旅行，但是在要去的地点上达不成一致，结果他们全体不得不进行一次大多数人根本不想去的旅行。</p><p>计划机制会造成这样一种景象，我们必须同意的任务将大大超出初始的意愿，因为我们无法把集体行为限定在我们同意的任务上，为了行动能够完全实施，我们不得不同意所有的事情。这决定了计划机制性质的最重要特点。</p><h3 id="3-5">3</h3><p>人们认为议会应当拟定一个无所不包的经济计划，但这超出了议会的能力，由此引发了大家对民主制度的不满。于是人们相信，想要落实这样的计划，必须托付给专家（常设官员或者独立机构）。</p><p>然而，议会效率低不是机构本身造成的，而是它所承担任务的内在矛盾，他们被要求对每件事情都取得一致意见，但计划是精心设计的相互适应的复杂整体，通过各种冲突妥协而达成一致的可能性远远小于成功筹划一次军事战役。</p><p>军事任务的确可以托付给专家，这是因为负责一场战役的将军受托的是一个单一目标，战争期间由他所控制的所有手段都专注于这个目标。而制定经济计划时却无法设定这样的单一目标，必须要在种种相互冲突和相互竞争的目标（不同人的不同需求）之间进行选择，这正是经济问题的实质。在制定经济计划时，利益是如此不同以至于不可能在议会里达成一致。</p><p>如果非要把制定经济计划的权力授予某个机构，那就意味着赋予了它运用法律力量进行专断的权力。这将成为民主政体逐渐放弃民主，走上计划道路的第一步。</p><h3 id="4-5">4</h3><p>尽管如此，还是有越来越多的人认同计划的必要性，越来越多的人不满意民主议会的效率，人们希望把权力赋予政府或某些个人，以使他们能够解决问题。</p><p>认为必须摆脱民主程序的羁绊才能有所作为的错误信念越来越流行。“召唤经济独裁者”是转向计划机制过程中的一个特有阶段。人们呼吁：“我们正生活在经济混乱中，只有在某种独裁领导下，我们才能摆脱这种混乱。”</p><p>在 1933 年前的一段时间里，德国已经达到一个实质上不得不实行独裁统治的阶段。那时没有人怀疑民主已经破产。希特勒无须摧毁民主，他只是利用了民主的衰败，在紧要关头获得了许多人的支持。人们虽然憎恨希特勒，但却认为他是唯一一个足够坚强、能够有所作为的人。</p><p>计划者有这样的论调：只要民主政体仍然保持最终的控制，民主的本质就不会受影响。他们认为，虽然越来越多的生活领域都屈从于国家的控制，但如果议会的最高权力能对一些控制加以防范的话，就能保住民主。</p><p>这种乐观信念忽略了一个致命的问题：当议会无法对一个计划进行局部反对时，情况就完全不同了。只要遭到反对的局部被说成整体必不可少的部分，为了推进整体目标的达成，反对就会无效。整个制度将趋向于那种全民公决的独裁制。在这种制度下，政府首脑一次又一次通过人民投票巩固其地位，确保事情按他期望的方向进行。</p><h3 id="5-4">5</h3><p>民主，就意味着必须把“有意识的控制”限定在真正一致的领域中，在其他领域则让事情自然发展。只有把政府的职能限定在那些多数人可能达成一致的领域，民主政府才能有效运行，一旦政府职能跨出这些领域，就会出现将少数人的意志强加给他人的现象。</p><p>自由主义信条的最大优点就是把需要达成一致意见的领域缩到所需要的最小。现在人们常说要民主就不能要资本主义。但是，如果资本主义指的是私有产权基础上的竞争体制，那么只有在这种体制中，民主才有可能。倘若被集体信条统治，民主将不可避免地自行毁灭。</p><p>我们无意将民主供为神灵，民主不是最高的政治目标，它本质上是一种保障内部安定和个人自由的实用手段。它绝不是一贯正确和可靠无疑的，当民主不关注对个人自由的保障时，它也可能造就极权政体。</p><p>有一种错误观点认为，只要权力来源于多数人的意志，就不会专横。这种观点没意识到民主背后的极权危险。防止权力专断的方法，不是限制权力的来源，而是限制权力的使用。否则的话，如果民主制度决定了一项任务，这项任务又必定要使用无法约束的权力，这时专制就诞生了。</p><h2 id="第六章：计划与法治">第六章：计划与法治</h2><h3 id="1-6">1</h3><p>自由国家和专制国家的最大区别，是前者遵循着被称为法治的伟大原则。</p><p><strong>法治，是指政府在一切行动中都受到事先规定并宣布的规则的约束</strong>。这种规则使人们可以十分肯定地预见到政府在某一情况中会怎样使用它的强制力，并据此规划自己的个人活动。尽管不完美，但法治的基本点很清楚：权力机构的自由应当减少到最低限度。</p><p>虽然法律在一定程度上限制了个人的自由，但法治之下，个人可以在已知规则内自由地追求自己的目标，不会被政府权力阻挠。这些规则是事先制定的，它们并不针对特定的人，而是针对特定的行为。</p><p>在自由主义时代，法治茁壮成长，并成为自由主义最伟大的成就之一。它不仅是自由的保障，也是自由在法律上的体现。正如康德所说：“<strong>如果一个人不需要服从任何人，只需要服从法律，那么他就是自由的</strong>。”</p><h3 id="2-6">2</h3><p>集体主义类型的经济计划必定会与法治背道而驰。因为计划机构不允许个人自由利用资源，也无法事先用规则来约束自己、防止专断。</p><p>当人们的实际需求出现时，计划当局必须在这些需求之间做选择。它需要决定一些根据一般规则无法得到答案的问题，并在做决定时把人们分出尊卑轻重。</p><p>例如，要决定饲养多少头猪、运营多少辆公共汽车、经营哪些煤矿、按什么价格出售鞋子，这些决定不可能从一般规则中推论出来，也不可能事先做出长期的规定。做这些决定时，政府往往必须权衡各种人和各个利益集团的利害关系，最终必须要有某个人来决定哪些人的利益比较重要。换句话说，政府给人们强加了一种新的等级差别。</p><p>一个经济生活受到彻底管制的国家中，就算形式上承认个人权利，也没有意义。中欧各个国家的经验表明，政府完全可能运用一些公认的经济政策，来推行歧视少数民族的无情政策，同时又不违反保护少数民族权利的法规。像“由政府控制产业发展”这种表面上无关痛痒的原则，会为歧视和压迫政策提供横行无忌的通行证。</p><p>事实表明，<strong>政府“计划”得越多，个人自由行动的空间就越小</strong>。</p><p>因此，自由主义者主张政府只为经济活动订立一般规则，并听任个人自由行动。因为只有相关的个人才能充分地了解情况并采取行动。政府要想指导每个人的经济行动，它必须实时、完整地了解全部情况，实际上这根本无法做到。</p><h3 id="3-6">3</h3><p><strong>要理解法治，就要清楚形式规则和实体规则之间的区别，这一点非常重要</strong>。举个例子，前者指制定交通规则，后者指命令人们向何处去；前者指设置路标，后者指命令人们走哪条路。</p><p>形式规则对事不对人，它告诉人们，在某种情况下政府将采取何种行动。这种规则用一般性的措辞来限定特定的行为，而不考虑时间、地点和特定的人。它所针对的是一种任何人都可能遇到的情况，我们事前无法知道谁会遇到这些情况。</p><p>所以，形式规则不管控任何特定个人或群体。在热衷于控制一切的时代，形式规则看起来似乎显得软绵无力，然而它的伟大之处正在于此——它不管控特定的人，在它的面前人人平等。</p><h3 id="4-6">4</h3><p>有人说，计划者能够凭借内心公平、合理的信念，以及在某一行业进行计划的经验，做到公平。但在特定问题上有直接利害关系的人，是当不好社会利益的裁判员的。例如某一行业里，劳资双方达成的限产协议解决了他们的利益分配问题，但那些对商品有需求的千百万消费者的利益就被损害了。</p><p>计划机制下，当我们在“让儿童获得更多牛奶”和“让奶农获得更高价格”之间取舍时，当我们在“给工人更高的工资”和“让更多失业者就业”之间纠结时，都要借助一个完整的评价体系。<strong>随着越来越多具体的事件被纳入计划者的裁夺范围，计划的专断性越来越强，最终法律和司法将沦为政策的工具</strong>。这就是一部法治消亡的历史。希特勒上台前后，德国法治的消亡过程就是这样的。</p><p>计划机制，必然要对不同的人的具体需求进行差别对待，禁止一个人做的事情同时又允许另一个人做。通过法律规定一部分人应当如何致富、不同人应当有什么和做什么，这实际上是回到了“身份统治”的局面，是社会的退步。</p><p>亨利·梅恩爵士有句名言：“<strong>从身份到契约是一次伟大的进步</strong>。” 法治是人治的对立面，是和专制政治对立的武器。只有推行形式规则意义上的法治，消除实体规则保护的特定人物的特权，才能实现法律面前人人平等。</p><p>“特权”的概念经常被滥用，土地只能由贵族所有是一种特权，政府把某些商品的生产和售卖权指定给某些人也是一种特权，但是人们拥有私有财产并不是“特权”。因为私有财产是任何人根据同样的规则都能获得的，不能因为某些人在取得私有财产方面比较成功，就把私有财产称作特权。</p><h3 id="5-5">5</h3><p>有一种观念认为：只要政府的一切行动都经过立法机关授权，法治就能保持，这完全是对“法治”的误解。</p><p>政府的行为经过立法机关的授权，这看起来在法律意义上合法了，但是不一定符合法治。希特勒是以严格符合宪法的方式获得无限权力的，但谁能说德国盛行法治呢？只要法律规定当局可以为所欲为，那么当局做的任何事就都是合法的，但这肯定不符合法治原则。</p><p>通过立法赋予当局无限制的权力，这种主张部分源于人民主权论和民主政体论。用这种做法，可以把最专断的统治合法化。就这样，在一个民主制度下建立起了最彻底的专制。</p><p>要想避免这种噩梦，就要正确理解法治。<strong>法治要求限制立法的范围，把范围限于公认的一般规则之下，拒绝为了特定人物的差别待遇而立法</strong>。</p><h3 id="6">6</h3><p>对立法权力的限制，意味着承认个人有不可让渡的权利，也意味着承认个人有不可侵犯的人权。</p><p>一些人鼓吹集中计划的同时又为人权辩护，这是自相矛盾的。保留个人权利，不可避免地会阻碍集中计划的实施。“人权宣言”条文里，如果附加许多保留和限制，将使它失去重要意义。</p><p>一边宣称“每个人有权买卖任何可以合法买卖之物”，可是又加上“只能买卖这么多的数量，并以符合公共利益为限”，这将使整个规定失效；一边宣称“每一个人可以从事任何合法的职业”，同时又规定他只能选择“对他开放的职业”，这也和自由选择职业背道而驰。</p><p>当通讯手段和货币都受到管制，而且工业也要由计划配置时，怎样才能确保“旅行与迁居自由”呢？如果纸张的供应以及所有发行渠道都被控制，又怎样确保新闻自由呢？</p><p>自从社会主义运动诞生以来，主张集体计划的社会主义者们，一直攻击个人权利优先的观念，他们认为社会中“没有个人权利只有个人义务”。</p><p>今天，人们对于个人权利的意识日益淡薄，个人权利时常被粗暴侵犯。战时，人们甚至连公开批评的权利都被限制。在特殊时期临时这么做可能不可避免，但如果作为永久性的制度，就背离了法治原则，这将直接导致极权主义国家的建立。</p><h2 id="第七章：经济控制与极权主义">第七章：经济控制与极权主义</h2><p>对经济生产的控制，就是对人类生活本身的控制。——希莱尔·贝洛克</p><h3 id="1-7">1</h3><p>一种流行的观点认为：计划机制必须或多或少地走极权路线。一个复杂体系，必须由一批专家来领导，最终的责任和权力必须掌握在领导者手中，其行为不应该受民主流程的限制。</p><p>持这种观点的人还安慰大家说，这种极权主义的管理将仅仅用于经济事务领域。在这个领域放弃自由，就会在有更高价值的领域获得更多的自由。</p><p>这种看似有吸引力的说法并不正确，它以为存在一些单纯的经济目标，这些目标与生活的其它目标毫无关系。实际上，严格来说并没有什么单纯的“经济目标”，经济只是我们追求其他目标的因素。有理性的人都不会以经济目标作为他们的最终目标。如果人们追求财富，那是因为财富能给人们广泛的选择机会，去享受他们努力的成果。</p><p>在现代社会中，每个人的收入都是有限的，我们总能感受到收入不足带给生活的种种束缚。许多人因此憎恨这种束缚的代表——金钱，这当然不对。实际上，<strong>金钱是人类发明的最伟大的自由工具之一。正是通过金钱，无权无势的普通人也能够在各种商品和服务之间自由选择</strong>。</p><p>许多社会主义者主张用各种“非经济激励”来代替“金钱激励”，不再用金钱的形式支付劳动报酬，而是用荣誉、特权、住宅、食物、旅行和受教育的机会等。这将大大损害劳动者的自由，原本他可以用金钱报酬自由地去换取想要的商品和服务。这样做的话，决定报酬的那个人，不仅决定了报酬的大小，还限定了报酬的形式。</p><h3 id="2-7">2</h3><p>如前所述，根本不存在什么单纯的经济目标，我们经济上的得失都将影响我们生活上的需求。这一点，在自由选择的经济环境中可以看得很清楚。</p><p>在自由的环境中，我们可以自行决定什么对我们重要，什么对我们次要。每当经济上有所损失时，我们总是先克制自己认为最不重要的那部分需求，以尽量减小经济问题对生活的影响。</p><p>然而，在计划机制下，计划者不仅定义了不同目标的相对重要性，实际上还定义了人们不同需求的相对重要性，他决定了什么对我们更重要，什么不那么重要，我们的哪些需求值得被满足，哪些不那么值得。洞察这一点非常关键。</p><h3 id="3-7">3</h3><p>只要计划者还控制着生产，就算不控制消费，也不会减弱计划者对个人生活的控制力。因为，控制了生产就控制了消费的源头。</p><p>在一个自由竞争的社会里，如果一个人拒绝我们的交易需求，我们可以转向另一个人。但是，当我们面对计划机制下的垄断者时，我们将不得不对他唯命是从。可以想象，控制整个经济体系的计划者将是一个多么强大的垄断者。它有彻底的权利来决定给我们什么、按照什么条件。它能够决定商品、劳务在各个地区和集团之间的分配，也能够在人们之间推行任何程度的差别待遇。</p><p>计划机制下，计划者并不仅仅控制着我们的消费，更重要的是控制着我们的生产。对于我们大多数人来说，我们生命的大部分时间都花在工作上，我们的职业通常决定了我们的生活地点、生活伙伴。因此，对于我们的幸福来说，择业的自由可能比闲暇时的消费自由更重要。</p><p>诚然，即使在最好的社会中，择业的自由也是有限的。但重要的是我们确实拥有选择权。如果某一职位变得令人十分难以忍受，或者我们钟情于另一种工作，能干的人几乎总会有途径可以达到他的目的。就算处境十分艰难，只要知道努力奋斗就能改变处境，我们也能心存希望。但是，如果无论如何努力也不能使情况有所改变，那么人们将感到绝望。</p><h3 id="4-7">4</h3><p>大多数计划者都承诺，会保障甚至还会增加择业的自由。但是这个承诺是无法兑现的。如果要进行计划，他们就必须控制各种行业和职业的入口，或者控制报酬条件，甚至两者都控制。几乎在所有已知的计划案例中，上述这些控制总是首要措施。如果这些控制由一个单一的计划者来推行，很显然，“择业自由”的承诺就是空头支票。</p><p>如果计划者只是规定就业条件，通过调节这些条件来影响就业人数，情况也不会更好。通过规定报酬，计划者能有效地阻止个人进入许多行业。</p><p>在一个竞争性的社会中，那些明显不胜任或不合适的人（例如一个身体羸弱却十分向往强体力工作的男孩），未必一定会被拒之门外。如果特别想要这个职位，他们常常能够用一种经济上的牺牲来得到入门的机会。但要是计划者强行规定了整个门类的报酬，这些人将得不到雇佣。</p><p>为了简化工作，计划者必然会定出一套标准。原本极具多样性的人类能力和倾向，不得不被归纳为几种很容易相互交换的标准，次要的个人差别被刻意忽视。从此，个人被当作工具，为了实现所谓的“社会福利”、“社会利益”之类的抽象观念。</p><h3 id="5-6">5</h3><p>在一个自由竞争的社会里，大多数事物都能以某种代价获得。这一点，成为了一些人批评自由竞争的理由，“什么高尚的价值都能和金钱交易”。</p><p>首先，为别人决定什么高尚什么不高尚，不如让每个人自己决定，这才是对个人尊严的高度尊重。其次，<strong>我们必须承认，生命和健康、美和善、荣誉和宁静，凡此种种，往往都要以物质牺牲为代价才能得到</strong>。例如，如果我们愿意承担废除汽车而造成的损失，我们当然能够把车祸的伤亡减少到零。</p><p>冷酷的现实通常迫使人们进行痛苦的选择，谁都不想面对这种痛苦的选择。但是，让别人来替他们进行选择，并不能缓解这种痛苦。</p><p>人们希望“不再有贫困”、“物质极大丰裕”，于是不需要再做选择，这只是痴心妄想。社会主义诞生以来，“物质极大丰裕”的梦想已经说了 100 多年了，但从没有一个可执行的方案，来说明如何增加生产以便哪怕在西欧消除贫困。</p><p>认为计划机制能比自由竞争生产更多的产品的观点，已经被多数学者放弃了。即便那些坚持主张计划机制的经济学家，在认真研究之后，也只是希望计划机制的效率能和自由竞争相当。他们主张计划机制，不是认为它的生产力高，而是觉得它可能带给我们更加公平的财富分配。</p><p>总之，<strong>没有经济自由的政治自由是没有意义的。经济自由，是任何其他自由的前提</strong>。在经济自由下，人们自主选择、自主决定自己的经济活动，每个人在拥有选择权利的同时，也就承担了相应的风险和责任。</p><h2 id="第八章：平等与自由">第八章：平等与自由</h2><p><strong>对平等的激情，扼杀了对自由的向往</strong>。——阿克顿勋爵</p><h3 id="1-8">1</h3><p>反对自由竞争的观点之一是：自由竞争是“盲目的”。我想说的是，<strong>自由竞争的盲目性恰恰体现了它的正义性，因为它对于所有人都一视同仁</strong>。在自由竞争之下，我们无法预测谁会获利谁会受损，赏罚不由某个裁判员的个人好恶而定，而是取决于每个人自己的能力和运气。</p><p>可供我们选择的是这两种制度，一种由几个人的意愿来决定每个人应该得到什么，另一种由每个人自己的能力和运气来决定他能得到什么。后面这种制度就是自由竞争制度。</p><p>的确，自由竞争制度下，穷人的机会要比富人少。但是，即便是自由竞争社会里的穷人，也比极权社会里的富人要自由。英国的一个待遇不佳的普通工人，比德国的许多小工厂主或者俄国的高级工程师，都要自由得多，他可以自由地计划自己的生活，自由地换工作和住处，自由地发表见解，自由地以他喜欢的方式打发闲暇时光，没有任何人可以用暴力强制他做些什么。</p><p><strong>在自由的社会里，穷人的致富完全掌握在自己手上，不需要依赖任何有权有势者的恩赐</strong>。</p><h3 id="2-8">2</h3><p><strong>私有产权是个人自由最重要的保障</strong>。这不单是对有产者，对无产者也一样。</p><p>很多社会主义者以为，只要没收了私有的生产资料，就能带来社会平等。他们没有意识到，当把一切生产资料的所有权都移交给国家之后，国家就拥有了决定每一个人收入和地位的权力。</p><p>这种权力，在一个自由竞争的社会里，谁都无法拥有。因为自由社会的生产资料分散在许许多多的雇主手里，任何一个雇主对于某个雇员的收入和地位都没有特殊的决定权，雇主必须给出有竞争力的待遇，否则没有人愿意为他干活。</p><p>反之，如果所有生产资料都归由一个人掌握，无论名义上是“社会”还是独裁者，他都能对每一个人进行全面的控制。想象一下，有一位亿万富翁是我的邻居也是我的雇主，还有一位拥有国家强制力的小公务员能决定我该如何工作和生活，那么，谁对我的影响更大呢？</p><p>一旦由政府承担起计划整个经济生活的任务，“谁应该得到什么”这样的经济问题就会成为政治问题，谁掌握了计划权，谁的意见就占优势。任何人想要改进自己的地位，就要设法使掌权者做出有利于他的决定。就像 19 世纪英国政治思想家警告的，“除了通过政府，没有其他道路走向富裕”。这种情况，在那些极权主义的国家里比比皆是。</p><p><strong>一个富人得势的世界仍比一个只有得势才能致富的世界，要好一些</strong>。</p><h3 id="3-8">3</h3><p>在俄国，“谁…谁”这个短语，是对社会主义社会里常见问题的精炼概括。谁为谁计划？谁指导和支配谁？谁规定谁的地位？谁划定谁的职责？这些问题是最高权力机关需要独自解决的核心问题。一位美国学者总结道，计划机制的政府的一切问题就是“谁得到什么，何时得到，如何得到”。</p><p>计划机制下，政府将用它的权力来实现“公平”分配的理想。但是，应当按照什么原则来分配呢？有没有一个合理的价值序列呢？这个价值序列下产生的新的等级体系是否正当呢？是否真正达到了公平呢？</p><p>社会主义者许诺的是“较大的平等”，但这只是对现实不满的一种表达，并没有为计划者需要解决的问题提供答案。它和“共同善”、“社会幸福”这样的词一样，没有明确的意义。</p><p>在自由竞争体制下，人们说的“公道的价格”、“公平的报酬”参考的是日常惯例，也就是人们根据以往的经验得出来的合理预期。</p><p>但是在计划机制下，需要由计划者来决定每种商品的“公道”价格以及产量，他还需要决定每个工种的“公平”报酬。比如，他要决定社会需要多少位建筑师、钟表匠，他还要决定建筑师、钟表匠们的“公平”报酬。</p><p>在决定各种不同目标之间的相对重要性的时候，他也就决定了不同行业之间的相对重要性，以及不同个人之间的相对地位。</p><h3 id="4-8">4</h3><p>当社会主义政策在实施过程中要求不同利益群体的支持时，各种冲突就会显露出来。究竟哪些东西比其他东西更重要、更有价值呢？应该把哪一套价值序列强加给所有人呢？无论如何，一个计划要想成功实施，就需要统一大家的思想。</p><p>社会主义者一贯希望通过教育来统一思想。可是，知识并不能创造伦理道德标准，再多的教育，也没有办法解决调整一切社会关系所引起的道德质疑。社会主义者明白，关键不是理性说服，而是信仰传递。为此，他们创造出了很多教导工具，后来这些工具也被纳粹和法西斯主义者有效使用。</p><p>德国、意大利的纳粹和法西斯主义者，并不需要发明太多东西。他们那种渗透到生活方方面面的政治运动的做法，社会主义者早就用过了。比如说，政党把成员的一切活动都纳入管制，指导从摇篮到坟墓的每一件事，把一切问题都看作政党的世界观问题。一位奥地利作家很自豪地说：“奥地利社会主义的鲜明特点，就是为工人、雇员每一方面的活动都建立了专门的组织。”</p><p>奥地利之外的其他地方也差不多。第一个把儿童吸纳入政治组织的，是社会主义者；第一个采用专门的敬礼和称呼，以使党员区别于其他人的，也是社会主义者；第一个为组织设计专门制服、引入军事化编制的，还是社会主义者。也正是他们，用组织的“细胞”长期监督私人生活，创造了极权政党的原型。德国、意大利的纳粹和法西斯，只是对社会主义者已有的做法进行模仿而已。</p><h3 id="5-7">5</h3><p>社会主义理论把社会划分成资本家和产业工人两个阶级，它们既有共同的利益，又互相冲突。社会主义认为老的中产阶级会迅速消失，但完全没有料到一个新的中产阶级的兴起，包括无数的职员和打字员，行政工作者和学校教师，小本经营者和小公务员等。</p><p>曾经，这个中产阶级中经常诞生工人运动的领袖。然而，随着时间的推移，产业工人阶级的地位日益改善，中产阶级的地位却日益糟糕。于是，之前的社会主义理想就不再能打动中产阶级了，他们希望按照他们自己的公平观念来分配财富，从这个意义上看，他们本质上也是社会主义者，只是主张的分配方式和其他社会主义者有冲突。</p><p>显然，社会主义政党这种“改善某个利益群体的经济地位”的手段，能获取该群体的支持，但无法获取所有人的支持。一定会出现一些和他们竞争的其他社会主义政党，这些政党拥有另外一些群体的支持。</p><p>比如，在意大利和德国，当工人运动催生了工人特权群体之后，法西斯和纳粹则发起了对工人特权群体的反抗，他们代表的是一种新的无特权群体，这个群体主要由落魄的自由职业者构成，包括受过大学教育的工程师、律师、白领职员，他们当时的生活比工会里普通的产业工人更贫困。</p><p>这些政党之间的矛盾，其实是不同的社会主义派系之间的矛盾，因为他们都主张由国家来分配每个人在社会中的地位，只是他们永远也无法就分配方案达成一致。</p><h2 id="第九章：保障与自由">第九章：保障与自由</h2><p>如果国家是唯一的雇主，反抗就等于慢慢饿死。“不劳动者不得食”这个古老原则，已被“不服从者不得食”的新原则代替。——托洛茨基，1937</p><p>经济保障往往被看成真正自由不可或缺的条件。的确，无法通过自身奋斗找到前途，就很难保持思想独立和个性坚强。但“经济保障”这个概念非常含糊，需要澄清。</p><p>我们先来对比两种保障，一种是所有人都可享有的、有限的保障；另一种是绝对的保障，在自由社会里只能作为特权给予像法官这样的特定群体，以便保证他们至高无上的独立性。第一种保障是为了防止严重的物资匮乏；第二种是某种生活水准或相对地位的保障。第一种保障可以面向所有人，是在市场以外、对市场体系的补充；第二种只面向少部分人，提供的保障必须通过控制或废除市场机制才能达成。</p><h3 id="1-9">1</h3><p>对于我们这种已经普遍富裕的社会，第一种保障并不会危及普遍的自由，难点在于这种保障该做到什么程度，以及依赖这种保障的人是否应该享受和自食其力的人完全同等的自由，对这些问题处理得不够谨慎可能会造成严重的政治问题。但整体而言，为所有人提供维持健康和工作能力所必需的食物、住所和衣物并没有什么争议，许多英国人已经享受了这些保障。</p><p>政府也没有理由不帮助个人应对自然灾害或生活中的意外伤害（如疾病或事故）。由于这些事件的不确定性，很少人能够提前做好充分的准备。政府在这些领域提供的协助，并不会减少人们为预防这些事件的自我努力。所以，要求政府协助提供社会保险的理由是非常充分的。尽管在哪些服务该由竞争体系提供，以及社会保险是否会降低竞争有效性等方面，还有一些争议，但在原则上，由政府提供更多社会保险并不会和维护个人自由相冲突。</p><p>最后，当下最迫切的问题是应对经济周期波动以及伴随而来的大规模失业。很多经济学家希望用货币政策来应对，货币政策和自由主义是完全兼容的。但也有些经济学家主张适时投入大规模公共工程，这种尝试我们必须非常谨慎，因为这会严重限制竞争范围，可能会导致经济活动越来越受政府支出的方向和数量的影响。在我看来，公共工程既非唯一，也非最有效的应对严重经济危机的方法。但不管怎么说，为应对经济波动所做的必要努力并不会危及自由。</p><h3 id="2-9">2</h3><p>对自由造成隐性伤害的是另一种保障——收入保障，它确保人们的收入不会下降，而收入下降是竞争社会中的正常现象。一个行业的收入水平，应该由这个行业对社会其他成员的价值决定，对收入进行保障将导致报酬脱离实际价值。</p><p>的确，环境变化有时会使某些行业或技能突然失去价值，比如一些社会价值巨大的发明，可能使某些人辛苦习得的技能突然变得一文不值。过去一百年里，这种悲剧一再发生，成千上万人因为自己无法控制的原因而遭受收入剧降的痛苦。因此，各地政府都给这些人们提供了同情和帮助。这种帮助往往不止是让他们免于贫困，而是要维持他们先前的收入水平，使他们免受市场波动的影响。</p><p>由于无法预测和控制的环境变化，有些技能的社会价值降低了，有些技能的社会价值升高了。如果前者的收入不因此减少，后者的收入不因此增加，那么工作的报酬就会和它的实际价值失去关联。人们的收入将不得不由当局的主观判断来决定，很快就会出现同工不同酬的局面，收入的差异也不再能对社会就业进行指引。</p><p>如果劳动力在不同行业里的分布，无法通过报酬变化这种“奖惩“机制来调整，那就只能由政府直接发出指令。既然个人的收入由政府保障，他就无法只根据自己的喜好来决定从事或放弃某份工作；既然个人工作变动带来的利益或损失不再由个人承担，对他工作调整的决定就只能由控制收入分配的人来作出。所以说，收入保障和自由择业之间是互相冲突的，人们获取了恒定的收入，就失去了择业的自由。</p><p>报酬可变这种奖惩机制不但有助于激励人们努力工作，更重要的是，它给了人们一种容易理解的工具去衡量各种职业的社会重要性，帮助他们判断和选择该做什么。如果报酬和对社会的价值之间没有关联的话，主观意愿再好的个人也无法作出明智选择。</p><h3 id="3-9">3</h3><p>对绝大多数人而言，如果自身利益和努力程度无关，是很难长期努力工作的。所以，报酬恒定的计划机制下，维持纪律将成为一个挑战。一位对政府计划有丰富经验的美国工程师解释道：“要进行一项工程，必须既能够从外部挑选工人，也能够开除不合格的工人。否则就只能像管理奴隶那样靠皮鞭维持纪律了”。</p><p>报酬恒定的计划机制下，对管理疏忽的处罚也有同样严重的问题。有句话说得好：“<strong>竞争经济的最后手段是法警，而计划经济的最后制裁是绞刑官</strong>。”在计划机制下，和工人的情况一样，厂长的职位和收入也无法仅仅由他的工作成败决定。他不能根据自己的判断，而只能根据给定的规章来做决策。一个“应该避免”的错误没能避免，这不是个人的问题而是对社会的罪行，会得到相应“惩治”。如果平稳履行职责，他可能比资本主义的企业家收入更稳定，但如果把事情搞砸了，他要面对的危险可能比破产还严重。只要上级满意，他在经济上就有保障，但这种保障需要以自由和生命的风险为代价。</p><h3 id="4-9">4</h3><p>这实际上是两种互不相容的社会组织形态，即商业型社会和军事型社会。我们面临的是非此即彼的选择，没有第三种可能。要么拥有选择的自由并承担相应的风险，要么没有选择的自由也不承担风险。</p><p>军事型社会和军队很像，在那里工作由当局分配，如果资源不足，大家就一起缺衣少食。只有在这种体系里，个人才是真正有经济保障的，但这种军队式的保障同时意味着对自由的限制和军队式的等级制度。</p><p>理论上，可以把自由社会的某些部分按照军队化的方式组织起来，并允许那些愿意放弃部分自由的人加入。但这种方案实际上很难实施，因为自愿放弃自由换取保障的人总是毫无道理地希望别人的自由也同样被剥夺。</p><p>如果社会只有一部分成员是按照军队方式组织的，那么，对他们自由的限制总会有个度，限制太过分的话他们会选择退出。但如果像众多社会主义者期望的那样，把整个社会都变成一个巨型军事化工厂，那社会恐怕就会变得像古代斯巴达或者当代德国那样——德国在经过两三代人朝这个方向的努力后，已经几乎达到那种形态了。</p><h3 id="5-8">5</h3><p>很难想象习惯自由的人们会真心愿意用自由换取保障。但到处在奉行的不时给这个群体或那个群体保障特权的政策，正迅速地使人们渴望保障更甚于热爱自由。每次把保障特权赐予某个群体，其余人的不安全感就会增加，对保障的渴望也会增加。如果你承诺从一块尺寸在变化的蛋糕中分出固定大小给某些群体的话，那么剩余蛋糕的尺寸波动幅度就更大了。</p><p>要保障特定行业的收入水平，唯一的办法是限制行业产量以维持高价，这必然意味着行业对外开放的机会将减少。如果某个行业受到保护，不需要再面对潜在进入者的低价竞争，那些潜在进入者的境地就变差了。任何行业对进入自由的限制，都意味着对行业外所有人的保障减少了。得到保护的行业越多，行业以外收入受损的人的就业机会就越少。在过去数十年间，正是各种争取保障的手段导致了大量人口失业和失去保障。</p><p>被摒弃于保障以外的绝望者和有保障的幸运儿之间，隔着天堑鸿沟，后者由于无人竞争，根本没必要为前者做任何退让。由于自认为他们的“生活水准”、“合理收入”理应受到保护，这些幸运儿们并不愿意减少收入或牺牲部分福利来分担别人的不幸。结果虽然特定价格、个人收入稳定了，但是就业和生产都会剧烈波动。</p><p>管制竞争，造成了优势地位的生产者对弱小不幸的生产者的剥削，其恶劣和残酷程度超过了任何阶级对另一个阶级的剥削。没有什么口号比“稳定”特定价格（或工资收入）带来的伤害更大了，一部分人越有保障，另一部分人就越朝不保夕。</p><p>随着保障特权的增加，原本自由竞争为人们提供的最重要的保护伞——多样化的机会——越来越少，而理想中那“普遍而公平”的保障也并未实现。真实世界里，保障特权被非常零乱、重复地授予某些群体，那些受到冷落的群体的不安全感日渐升高。最终，这种特权的价值越来越高，对它的需求也越来越紧迫，以致于人们愿意为这种特权付出任何代价，甚至放弃自由也在所不惜。</p><h3 id="6-2">6</h3><p>更糟的是，拥有保障特权的人和没有保障特权的人之间越来越对立。保障越成为一种特权，被排除在外的人就越感到危险，就越想不惜代价得到它。</p><p>随着获取特权的人数增长以及特权本身的增长，新的社会价值观就形成了：确定身份地位的是保障而非独立。择偶标准从能否成就一番事业变成了是否有稳定的退休金。如果不能在年轻的时候取得保障特权，就要在贱民般的悲惨处境下度过一生。</p><p>人们为获取保障特权而付出的努力，逐渐使社会发生了变化，这在德国尤为明显。年轻人更愿意选择薪资稳定有保障的职业，而不愿去商业企业承担风险。在他们成长的环境里，商业企业被看成是不体面的，赚取利润被看成是不道德的，指挥 100 个人被视为荣耀而雇佣 100 个人却被称为剥削。</p><p>尽管强制力量不一定能够消除所有的自由精神，但倘若只有当国家公职人员才能获得荣誉和地位；倘若从事指定工作比发挥个人所长能得到更多赞美；倘若除了在官僚体系中取得地位和收入保障外，其它成就都显得低人一等；那么，要人们选择自由而非保障就实在是强人所难了。一旦事态发展到需要牺牲几乎所有美好的东西才能换取自由，自由就成了笑柄。越来越多的人会感觉到，没有经济保障的自由“不值得拥有”，这正是诱劝德国人民放弃自由的最好说辞。</p><p>毫无疑问，政策应该提供免于穷困的基本保障，但为了不伤及个人自由，这种保障只能在市场以外提供，不能让市场内的竞争机制受到阻碍。基本保障对维护自由的确必不可少的，但与此同时，我们决不能忽视当前危害极大的“以自由换取保障”的风尚。</p><p>我们应该认清这一事实：自由是有代价的，有时需要作出重大的物质牺牲才能维护自由。如果我们希望保有自由，就必须时刻记住富兰克林的箴言：“<strong>那些愿意放弃基本自由来换取暂时保障的人，既得不到自由，也得不到保障</strong>。”</p><h2 id="第十章：极权之下坏人当道">第十章：极权之下坏人当道</h2><p><strong>权力导致腐化，绝对的权力导致绝对的腐化</strong>。——阿克顿勋爵</p><h3 id="1-10">1</h3><p>很多人认为，极权体制本身并不可怕，可怕的是被暴君掌权。因为，强有力的极权体制，既可以用来行善也可以用来作恶，这取决于掌权者的品行。他们觉得，在德国出现的糟糕情境并非必然，不应归咎于极权体制，而应归咎于邪恶的德国人。</p><p>实际上，极权体制下的罪恶和痛苦，并非被暴君掌权的偶然结果，而是这个体制下迟早会出现的必然结果。</p><p>一位心怀民主理念的政治家，如果开始计划人民的经济生活，那么，他很快就需要面临这样的选择：要么放弃计划回归民主，要么坚持计划走向独断。而走向了独断的政治家，马上也要面临一项选择：要么坐等失败，要么背弃一般的道德准则。</p><p>因此，<strong>在一个走向极权的社会里，没有底线、肆无忌惮的人更加容易获得成功</strong>。</p><p>崇高社会理想下诞生的制度，不一定能带来崇高的社会道德。一个社会的道德观，一部分取决于怎样的品行在这个社会里更容易成功，另一部分取决于社会体制对人的要求。</p><h3 id="2-10">2</h3><p>现在，人们呼唤极权、贬低民主，主要是因为受不了缓慢呆板的民主程序。那些主张极权体制的政党，看起来强悍有力，能够迅速解决问题。人们期盼这样“有力”的领导。“有力”不仅仅指人数多，而且指拥有强硬后盾，善于鼓舞人心，具备强大的执行力。于是，按军事化组织的新型政党应运而生。</p><p>在中欧的许多国家，社会主义政党用半军事化的方法来管理成员。用这种方法，集体尽可能地挤压掉成员的私人生活，掌握绝对的权力。组织的首领首先网罗一批自愿服从“纪律”的人，然后再把这种“纪律”强加给全体人民，形成极权体制。</p><p>之前，旧的社会主义政党都没能成功掌权，因为他们被自己始终保留的民主理想所约束，缺乏不顾一切实现目标的冷酷。后来，新的社会主义者明白过来了：关键不在于获得大多数人的同意，而在于建立一个人数众多、思想统一、强有力的组织。</p><p>要知道，一个人数众多、思想统一、强有力的组织，更可能由社会里缺乏思辨能力的成员组成。这主要有以下三个原因：</p><ul><li><p>首先，人们的受教育程度和智慧越高，通常看法和兴趣就越不相同，也就越难认同一个完全一致的价值体系。所以，一个人数众多且思想统一的组织，其成员往往缺乏创造力和独立思考能力。</p></li><li><p>其次，这种组织比较容易得到温顺和容易受骗的人的支持。那些温顺的缺乏坚定信念的人，只想着接受一个现成的价值体系，只要宣传得足够频繁和响亮，他们就被说服了；那些容易受骗的人，情感和热血一点就燃，也会义无反顾地投身组织。</p></li><li><p>最后（可能也是最重要的），老练的政治煽动家会处心积虑地运用仇恨，让支持者们加强团结。他们常常强调“敌人”如何可恶，“我们”和“敌人”之间有深深的裂痕。<strong>仇恨是让组织紧密团结的法宝</strong>。敌人，不管是内部的（比如德国的“犹太人”或俄国的“富农”）还是外部的，都是极权首领的必备武器。</p></li></ul><p>基于人性的原因，个人常常因为自卑而希望加入一个集体。当贴上“集体成员”的标签后，人们能收获一种相对于其他人的优越感，并为拥有同一标签而感到满足。但是，个人的人格将在集体之中日渐淹没，<strong>当以集体的名义行动时，之前束缚他的道德枷锁就被打破了</strong>。</p><h3 id="3-10">3</h3><p>十九世纪伟大的个人主义哲学家阿克顿勋爵和布尔克哈特，以及继承了自由主义传统的当代哲学家罗素，他们都认为权力本身是最大的恶。然而，想要按照一个单一的计划来组织整个社会的生活，就需要掌握权力。必须掌握前所未有的权力，才能支配每一个人，实现整体目标。</p><p>有些人天真地以为，把每个人拥有的权力都让渡出来，统一到社会管理者手中，就能消除因权力分散引发的不平等。他们没有料想到：把分散在许多人手里的权力集中到少数人手中，会让权力膨胀到前所未有的程度，引发质变。</p><p><strong>权力的分散，是保障个人自由的必要举措</strong>。为了分散“能支配每一个人”的中央管制权力，唯一的对策就是自由竞争制度。</p><p>如果把经济权力分散在每个人的手里，它就无法控制任何人的生活。反过来，如果经济权力被中央掌控，甚至成为政治的工具，那么，任何人都得靠它才能生活，人们和奴隶就没有什么区别了。</p><h3 id="4-10">4</h3><p>每一个集体主义制度都有两个主要特征：首先，有一个全集体共同接受的目标体系；其次，为了达成这些目标，需要给予该集体尽量大的权力。这两个特征产生了一个特殊的道德标准，和我们通常的道德标准不太一样。</p><p>在通常的道德标准里，那些不道德的行为（比如欺诈或者盗窃），不管有没有造成伤害，也不管有没有高尚的目的，都是不道德的。<strong>高尚的目的，不能成为不道德行为的保护伞</strong>。“只管目标，不择手段”，是对道德的全面否定。</p><p>但是在集体主义的道德标准里，是否有助于“集体利益”是判断该做什么不该做什么的唯一依据。“国家利益”就是集体主义道德最清晰的表达，它只关心行为对整体目标的利害影响，并不关心个体。</p><p>集体主义制度下，有一些美德会繁荣，有一些美德会凋零。以一个“典型的德国人”为例，他们勤奋认真到无情的程度，对于任务极其专注和负责，严格地服从纪律和上级，遇到危险勇于牺牲。这些美德合在一起，就打造出了完美的执行指定任务的工具。他们就是这么被培养起来的。</p><p>而他们缺少的美德则是：宽容，尊重他人的意见，独立精神，不唯上，同情弱者，鄙视强权，幽默，和蔼谦虚，尊重他人的隐私，相信他人的善意。这些美德在个人主义或商业型的土地上就会枝繁叶茂，而在集体主义或军事型的土地上则会枯萎衰败。</p><h3 id="5-9">5</h3><p><strong>只要哪里有一个凌驾于一切之上的共同目标，一般的道德或规则在那里就没有容身之所</strong>。</p><p>在极权主义者看来，为了达成社会的共同目标，个人的权利和价值都是可以牺牲的。这意味着，作为个体的人难免要忍受极权的残暴。残暴时常会披上责任的外衣，比如“强迫数万人口迁移”竟会成为每个人都赞成的一种政策；而“枪杀人质、残害老弱”竟会被解释成权宜之计。在极权主义者眼里，总有一个能让这些行为正当化的重大目标。</p><p>如果一个人想要在极权体制里有所作为，他就不能坚守通常的道德标准，不能秉持原本的善恶观念。为了某种更高的目标，他必须毫无原则，必须不择手段。看看德国的那些仕途坦荡的部门，无论是盖世太保（即秘密警察组织），还是集中营，或者宣传部，都不是培训人道主义的地方。</p><h2 id="第十一章：真理的终结">第十一章：真理的终结</h2><p><strong>值得玩味的是，思想的国有化总是与工业的国有化如影随行</strong>。——E·H·卡尔</p><h3 id="1-11">1</h3><p>要想让大家都为单一的社会目标努力，光靠强制力是不够的，最有效的方式是让每个人都坚信这个目标，并把它当成自己的目标。</p><p>宣传工作在这里能够发挥巨大的作用：把一切宣传都指向同一个目标，让所有宣传工具都协调一致，共同推动全体人民思想的“一体化”。</p><p>如果能严格把控住所有的信息来源，宣传家就能按照他们的意愿来塑造人们的思想。即便最睿智、最能独立思考的人，如果长期只能接触到限定的信息，也难逃宣传机制的影响。</p><p>在极权主义国家，宣传具有控制民众思想的独特力量。特别需要引起注意的是，极权主义宣传可能引发深远的道德影响，<strong>它对于一切道德都具有破坏性，因为它破坏了人们对事实的认识和尊重，而这是所有道德的基础</strong>。</p><h3 id="2-11">2</h3><p>计划经济暗含着需要所有人都认同同一套道德准则和价值标准，这在自由社会中并不存在的，因而需要被单独创立出来。</p><p>有些问题并没有明确的对错，但也需要计划当局做出裁定。这样的裁定可能只是基于决策者个人的偏见，不过他们还是需要向民众证明他们的决策是英明的。</p><p>为了使民众积极支持这些决策，而不仅仅只是消极接受，计划当局还需要创造出一套新的理论，作为他们统治学说中的一部分。新的理论将成为不容置疑的官方信条，或多或少地指导着每个人的行为。</p><p>很多崇尚极权主义的理论家都明白理论在指导和团结民众方面的重要作用。柏拉图的“高尚的谎言”、索雷尔的“神话”、纳粹的种族学说、墨索里尼的工团国家，都是这样的理论工具。</p><h3 id="3-11">3</h3><p>要使民众承认他们所服务的这些价值标准的正确性，最有效的方法就是让他们相信这和他们以前信仰的价值标准一样，只不过以前的认识太模糊或理解不正确。</p><p>要实现上述目的，最有用的手段就是延用以前的词汇，但篡改其词义。</p><p>首当其冲的词汇就是自由。在极权主义国家里，自由这个词汇被随意使用。事实上，当有人倡导“以新自由替代旧自由”时，我们就该警惕了。</p><p>在自由被消灭的地方，总会有新自由的许诺，甚至还有所谓的“自由计划者”许诺民众“集体自由”。<strong>然而，这个“集体自由”并非社会成员的自由，这只是计划者可以对整个社会为所欲为的自由</strong>。这简直是把自由与极权互相颠倒。</p><p>将词义歪曲的做法，并不仅限于自由。公义和法律、权利与平等，<strong>几乎所有道德和政治方面的词汇都难免被篡改本义，以便能成为极权主义的宣传工具</strong>。</p><p>这种词义篡改将给理性探讨带来难以想象的困扰与障碍。即便是亲兄弟，如果其中一个接受了新的词义，那便像是鸡同鸭讲一般，几乎不可能进行有效的沟通。</p><p>这种篡改词义的行为并非孤立事件，而是一个持续的过程，带来越来越严重的困扰。长此以往，语言和文字将失去原本的意义，沦为空壳，既可是亦可非，最终被肆意滥用，随心而释。</p><h3 id="4-11">4</h3><p>让大部分人丧失独立思考并不困难，但同时还必须让那些具有批判倾向的少数人也保持缄默。由于这套道德准则不能被明确地阐释，为了让民众毫不犹豫地支持，必须让他们相信所有政府行为的手段和目的都是正确的，这个正确性不容被挑战。</p><p><strong>公开的批评和质疑将不被允许，因为它们会削弱公众的支持</strong>。当这种质疑不是针对某个企业而是针对整个社会计划时，甚至会被认为是某种阴谋。就像韦伯夫妇报告中提到的：“任何公开的质疑，都是不忠甚至背叛行为，因为它们可能影响别人的意愿和努力。”</p><p>所有的宣传机构，学校和报纸，广播和电影，都将强化这样的观念：政权当局的决策永远是英明正确的。任何可能引起疑问或犹豫的信息，一概不予传播。<strong>信息能否传播的唯一标准，就是是否会影响民众的忠诚</strong>。与他国相比的不利情形，对现行方针的质疑，对政府未能履职的陈述，诸如此类的信息将通通不予报道。所有领域的信息都会得到系统的管制，并会强制推行统一的意见。</p><p>在极权主义体制中，对真理的客观讨论将不被允许，维护官方意见成为唯一的目标。甚至在那些与政治无关的领域（例如最抽象的科学领域）里也不能幸免。<strong>而那些与政治相关的人文学科（比如历史、法律、经济学等），则成了官方制造神话的工厂，统治者就用这些神话来支配人民的思想和意志</strong>。</p><h3 id="5-10">5</h3><p><strong>极权主义思想谴责一切没有远大目标的行为，痛恨为科学而科学，为艺术而艺术</strong>。任何活动都必须有社会意义才有正当性，在苏联甚至会有这样的口号：“我们在数学中拥护党，我们在外科手术中拥护马克思主义列宁主义理论的纯洁性。”在德国，情况也相似。</p><p>任何未经计划、没有指导的自发活动都不被允许，因为结果不可预料。这种指导原则甚至包括了游戏和娱乐。</p><p>我们需要非常警惕这种荒诞的现象。它们并非极权主义或计划机制无心造成的小问题，而是其必然的结果。</p><p><strong>一旦科学不是为真理服务，而是为某个阶级、某个政党、某个国家服务时，争辩与讨论就失去了意义，它们只是既定信仰的辩护工具</strong>。真理这个词也将失去原本的意义，它将由当权者定义，并在组织需要时随意篡改。</p><p>知识界将丧失追寻真理的意志，放任自流，独立探索的精神随风而逝，理性信念也不再能给人力量。各个知识领域的意见变成了必须由当局来决定的政治问题。</p><p>令人震惊的是，就算在自由主义制度的国家里，那些信仰集体主义的知识分子们也非常排斥认知和思考的自由。</p><h3 id="6-3">6</h3><p>强制推行所谓有益于人民的信条，这种事情历来就有，但当前一众知识分子们为此辩护的论据却是新的。他们认为，大多数人并不独立思考，他们的意见和喜好会被宣传、广告、上层阶级的榜样等因素塑造，所以我们应该积极控制并引导民众的思想到可取的方向上去。</p><p>但是，就算大多数人不独立思考，也没有任何人有权决定谁可以自由思考，更没有任何人有权决定他人的想法和信仰。<strong>思想自由对人类智识进步的意义，不在于每个人都有能力独立思考，而在于每个人都有权利发表不同的见解</strong>。只有这样，才会有源源不断的新想法产生出来，共同接受辩论和传播的考验。</p><p>不同见解之间的碰撞才能促进思想和理性的成长，结果的不可预测性是成长的本质。所以，我们不应该用已知来“计划”或“安排”这样的成长，这个说法本身在言语上就是矛盾的。试图对成长加以控制，只会阻碍它的发展，迟早会导致思想的停滞和理性的衰退。</p><h2 id="第十二章：纳粹主义的根源">第十二章：纳粹主义的根源</h2><h3 id="1-12">1</h3><p>我们时常低估纳粹主义的危害，以为这不过是一场非理性的运动。其实它的危害远大于此。纳粹主义是思想长期演变的结果，德国和别的国家都有众多极具影响力的思想家参与其中。这是一种彻底的集体主义，所有可能阻碍其实现的个人主义传统，在这场思想演变中统统被清除一空。</p><p>虽然这场大戏上演于德国，但像卡莱尔、张伯伦、孔雷、索雷尔这些外国思想家们也起到了不容小觑的作用。这股思潮在德国已有 150 年之久，但一战之前并没有产生特别大的影响。那么，后来是什么推动这股思潮得到大多数德国人（特别是全体德国年轻人）的支持呢？实际上，并不像是很多人以为的那样——那些“反动的资产阶级”在推动，恰恰相反，这些观点的力量源自集体主义。</p><p>指导德国上一代统治者的学说，并不反对马克思主义里的社会主义，而是反对其包含的自由主义、国际主义和民主思想的因素，因为这些因素成为了实现社会主义的障碍。于是，左翼社会主义者日渐靠近右翼社会主义者，最后，左右翼的反资本主义势力联合起来，激进与保守的社会主义并肩将一切自由主义的东西从德国赶了出去。</p><p>在社会主义指导德国劳工运动时期，极权主义和民族主义一度隐入幕后。但为时不久，1914 年以后，劳动者和理想主义青年被领进纳粹主义阵营。自此以后，纳粹主义的浪潮日渐壮大，很快发展成为希特勒的学说。1914 年德国的战败成为了纳粹主义现代发展的开端，那段时期里，纳粹主义的兴起也得到了老牌社会主义者的支持。</p><h3 id="2-12">2</h3><p>老牌社会主义者的代表人物是桑巴特教授，他在整个德国境内传播社会主义思想和对资本主义的愤恨。1915 年，他出版了臭名昭著的《商人与英雄》一书。他最初是马克思派的社会主义者，直至 1909 年依然自称其将一生中的大部分时间奉献给了马克思的思想。马克思主义思想在德国之所以能深入人心，很大程度上要归功于他。</p><p>桑巴特认为，“德国战争”是英国商业文明和德国英雄文化间不可避免的冲突。在他看来，仅仅追求个人的幸福是可耻的，“德国人对国家的看法”是：国家既不是由个人组建的，也不是个体的总和，国家的目的不是为任何个人的利益服务。它是一个人民共同体，在这个共同体中，人民只有义务而没有权利。个人对权利的要求是商业理想的结果。“1789 年的思想——自由，平等，博爱——是典型的商业理想，除了保证个人利益之外，没有任何其他目标。”</p><p>桑巴特以德国人对战争的态度为荣。在他看来，1914 年以前，受英国影响，德国的“英雄理想”面临着致命的危险。只有战争才能让德国人想起他们是真正骁勇善战的民族，是将一切活动都从属于军事目标的民族。认为战争是不人道的和愚蠢的仅仅是一种商业观点；而有一种生活高于个人生活，那便是民族和国家的生活，个人的目标在于为了这种更高的生活而牺牲自己。战争是英雄主义人生观的顶点。</p><h3 id="3-12">3</h3><p>桑巴特的观点连当时的大多数德国人都认为过于极端了，另一位保有同样思想但形式上更为温和的是德国教授约翰·普伦格。与桑巴特一样，他也是研究马克思的权威，他起初所抱持的信仰确实具有真正的社会主义性质。</p><p>普伦格教授在战时出版了许多作品，其中影响最大的是《1789 年和 1914 年：政治思想史中的象征年代》，这本书专门讨论了 1789 年自由思想和 1914 年组织思想之间的冲突。普伦格认为，组织思想是社会主义的本质，而德国最好的理解和体现了组织思想。他还认为，社会主义和组织代表着 19 世纪以来先进经济生活的新生力量，英德之战实质上是自由思想和组织思想之间的冲突，这与宗教改革、资产阶级自由革命具有同等的重要性。在他笔下，这场“经济世界大战“是近代史上发生在精神斗争领域的第三个纪元。</p><p>一开始，普伦格试图通过个人对整体的自愿服从，将自由的理想和组织的理想调和在一起。但很快，这些自由主义的思想痕迹便从他的著作中消失了。到了 1918 年，他关于社会主义必须与强权政治相结合的想法已经成型。</p><h3 id="4-12">4</h3><p>普伦格的观念或许来源于特定圈子的科学家与工程师们，他的学说阐述得非常清晰，因而在这个圈子内颇为流行。他们叫嚣着生活中各方面都应该有集中计划的组织，其中颇具声望的代表人物是著名化学家奥斯瓦德。他曾公开宣称：“德国要把至今尚缺乏组织的欧洲组织起来，日耳曼民族已经发现了组织的意义。其他民族依然生活在个人主义体制内，而我们已经获得了有组织的制度。”</p><p>将这些思想充分发展并广为传播的是一位积极的社会主义政治家，德国议会社会民主党的左翼人物保罗·伦施。他最著名的战时著作是《世界革命的三年》。从伦施的马克思主义观点来看，工业的集中化管理和企业联盟是工业发展的较高形式，相比其他国家，德国代表着更先进的经济制度。他认为，人们的自由主义、民主主义的概念都来自于英国的个人主义观点，需要被淘汰；在当前的世界革命中，德国代表着革命的一面而英国则代表着反革命的一面，作为“被历史选定的代表”，德国应当坚决“抵御外侮”，完成革命全球的历史使命。</p><p>伦施谈到，对资本的组织工作，战前已经在无意识地进行，战争期间得以有意识地实施，在战后还将被系统化地继续。反对这一趋势的只有那些自由主义者。继此之后，伦施又发表了一种令人深思的观点，该观点包含了许多事实因素：由于社会主义劳工 50 年来的艰苦奋斗，国家已不再是 1867 年普选刚开始时的样子，社会主义也不再是当年的社会民主主义了。国家经历了社会主义化的过程，而社会民主主义则经历了国家化的过程。</p><h3 id="5-11">5</h3><p>普伦格和伦施先后为纳粹主义直接领导人提供了指导思想，其中最有名的两位分别是施本格勒和缪勒·范·登·布鲁克。</p><p>施本格勒认为旧时的普鲁士精神与社会主义信念同出一辙，而所有自由主义改良派则都是“英式的”，这种“英式的”精神将被从德国革命中驱逐出去。他说：“普鲁士人的本能是：权力属于整体……每个人都被安排了位置，一个人要么命令他人，要么服从他人。这便是 18 世纪以来的专制社会主义，其本质是反自由主义和反民主主义的……英国民族的结构建立在贫富差别上，普鲁士民族的结构建立在命令与服从的区别上，两国的阶级区别的意义有本质的不同。”他还指出：“严格意义上讲，私人是不能存在的，体制如钟表机械装置一样精准地运转，每个人就是其中的一个环节。”</p><p>“普鲁士观念”要求每个人都应成为国家公务员，一切薪水全由国家规定，未来的国家应该是官僚制的。作为纳粹主义的早期领导者，缪勒·范·登·布鲁克宣称，一战是自由主义与社会主义之间的战争，战争的失败是反西方的失败，是社会主义反自由主义的失败。同施本格勒看法一致，他也将自由主义看作头号敌人。</p><p>反对任何形式的自由主义，反对打败德国的自由主义，这将社会主义者和保守主义者联合成了统一阵线。这种思想最初在极具社会主义精神的“德国青年运动”中被接受，并完成了社会主义和民族主义的融合。</p><p>二十年代后期到希特勒上台之前，一批年轻人在费迪南德·弗里德的领导下成为了这种思想在知识界的主要拥护者，他们在德国被称为“高尚的纳粹”，弗里德的《资本主义的末日》可能是他们最具代表性的产物。令人感到不安的是，今天我们在英美也能见到这样的文学作品，它们把左右翼的社会主义者联合起来，反对一切原有意义上的自由主义。大批作者使用“保守社会主义”或“宗教社会主义”的口号摇旗呐喊，在今天的英国，这俨然已经成为一种主导倾向。</p><h2 id="第十三章：英国社会中的极权主义者">第十三章：英国社会中的极权主义者</h2><h3 id="1-13">1</h3><p>极权体制罪孽深重，不过，人们却丝毫不担心这种制度会出现在英国。当大家看到英国同纳粹德国之间的现实差异日益扩大，很自然地以为英国不可能向着纳粹德国的方向发展。然而，如果回溯到 15 年前，90% 的德国人和各种外国观察家也都无法预料到现今德国所发生的极权情况。</p><p>民主国家当前的情况确实不同于现在的德国，但却与二三十年以前的德国越来越相似。那些当年的“德国特色”，诸如，推崇国家利益、倾慕权力、好大喜功、热衷把任何事情都 “组织化”（即我们现在所说的“计划”）、以及“不能听任事物的有机发展”，现今在英国也司空见惯了。越来越多的征兆说明英国正在向着和德国一样的方向发展，其中最突出的是，英国左派和右派的经济观点正在趋同，都反对英国政治的传统基础——自由主义。</p><p>关于英国人和德国人之间的政治和道德的分歧，英国国内在二战期间曾展开过严肃的讨论。回顾过去 20 年，我们就会清晰地看到英国沿着德国的道路走了多远。当年，英国人曾经对自己独特的自由主义传统无比自豪；现今，大多数英国人却对英国特有的政治观点尤感惭愧。</p><p>德国著作中阐明过各种可怕观点，譬如“工业生活的军事化”、“个人主义必须寿终正寝”、“必须建立起一个管理制度，其目的不是增进个人幸福，而是要加强国家的有组织的统一，以求达到最高限度的效能”。如今，类似的观点也出现在了英国的文献中。在英国，为极权主义开辟道路的著作往往都岀自那些声名显赫的理想主义知识分子。</p><h3 id="2-13">2</h3><p>接下来，我们以天才学者 E·H·卡尔教授的《二十年的危机》与《和平的条件》为例，看看英国著作中如何弥漫着各种极权主义。</p><p>卡尔教授赞同，“使道德成为政治的一种功能”，且 “除了事实的标准外，不能合乎逻辑地接受任何价值标准”，即道德及道德的 “抽象的一般原则”都必须被消除。可是常理告诉我们，如果没有抽象的一般原则，是非标准就只能是一种任意、武断的意见；如果没有道德的约束，一切的国际条约都会失去任何意义。</p><p>卡尔教授设计的未来社会是以极权主义为模型的。在其著作《和平的条件》中，他把纳粹德国的战争叫嚣作为自己的口号，反对自由主义民主政治、民族自决和自由放任的经济，并鼓吹建立集中计划和管制的世界是不可避免的发展方向。而这种“不可避免的”宿命论却是基于一个经济学谬论——技术的发展必然引起垄断组织的普遍发展。不过，卡尔教授的经济学观点经不起任何认真审慎的检验。</p><h3 id="3-13">3</h3><p>科学家们鼓吹将社会“科学地”组织起来，是近百年来德国思想发展的特点之一。凭借科学家、技术专家们对社会和政治见解的特殊影响力，这一理想已经在德国大力推进，如今也出现在了英语国家中。</p><p>这些披着科学家外衣的政治家们很少支持自由主义。科学家、技术专家们往往明显地表现出对理性的不容忍、对平常人做事方式的不耐心，并轻视一切未由超凡头脑依照科学蓝图有意识地组织起来的事物。1840 年至 1940 年期间，德国的教育制度从“人文”之学普遍彻底地转向“现实”之学，这极大地推动了德国的极权体制发展。</p><p>德国的大部分学者和科学家都欣然委身于新的统治者，在极权主义的社会改造中推波助澜。</p><p>法国哲学家朱利思·本达在他 15 年前的著作《知识分子的背叛》一书中已经预见这一情况，并特别指出那些主张专制权力的人往往会刻意宣传“历史服从于科学的规律”这一教条。</p><p>英国著名生物学家 C·H·沃丁顿博士所写的《科学的态度》一书得到了有广泛影响力的英国《自然》周刊的大力推荐。该类著作极力主张赋予科学家更大的政治权力，热烈鼓吹大规模的“计划化”。沃丁顿博士依据“科学能够对人的行为作出道德的判断”这一论述提岀了“科学家有资格经营一个极权主义社会”的主张。同时，书里论述的社会和经济问题毫无科学可言，引证论点的论据都来自一些有科学问题的政治性小册子，缺乏严肃的科学研究。令人惊讶的是，他竟然期盼着集中化的极权体制和自由的思想并存。</p><h3 id="4-13">4</h3><p>在政治运动中，垄断企业资本家是组织者也是策划者，他们幻想能长久享有优越地位。然而，即便国家容许这样的权力集合体成长起来，也不会让这种权力完全控制在私人手中。当私人工业和国家工业并存时，出色的产业人才虽然有可能在比较安稳的位置上得到高额薪水，但他们不再享有主人的权利，仅能接受政府给予的权力和报酬。</p><p>通过分享利润或游说他人相信垄断符合公众利益，垄断企业资本家成功地获得了愈来愈多的利益集团和政府的支持。甚嚣尘上的舆论影响着立法和司法程序，成为这种发展的重要催化剂。另一方面，各种反对垄断的措施常常反倒加强了垄断的权力。因为对垄断利润的每一次袭击，都容易产生新的既得利益，并助力垄断的扩张。</p><p>当垄断无法避免，控制垄断风险的最好方法绝对不是由政府来掌握。如果涉及许多不同产业，宁可让这些局部的垄断分散在不同个人的手中，而不要统一交由政府管理。因为私人垄断很少是完全的、长期的垄断，往往还存在着潜在竞争；而国家的垄断则受到国家保护，可以免于潜在竞争和有效批评，这种情况下，批评垄断容易被解读为批评政府。</p><p>相较由政府直接搞经营，美国人往往会釆取对私人垄断加强政府管制。政府可以实施严格的价格管制使垄断没有特殊利润，并使垄断者以外的其他人也能分享利润。这样的话，即便垄断行业提供的服务不能达到最优，抑制垄断所付出的代价也比较有限。这种管理垄断的方法有助于把垄断限制在不可避免的范围内，并鼓励发明和提供竞争替代品，因而更可能收到良好效果。</p><h3 id="5-12">5</h3><p>造成垄断需要多重因素，不是仅靠少数有利害关系的资本家就能单独完成，他们需要多方支持。垄断资本家通过分享收益或各处游说，使得人们相信垄断有助于建立公平良序的社会。</p><p>近些年的垄断大多是由有组织的资方和有组织的劳工精心合作的结果。在反竞争学说的影响下，劳工运动的目的从和一切特权做斗争转为争取特权。当劳工中的特权集团分享了垄断利润时，普通大众，特别是境况较差的工业组织中的工人和失业者，就成为了牺牲品。</p><p>看到一个伟大的民主运动正在支持一种必定会导致民主毁灭的政策，且仅对少数人有利，这无疑是这个时代最令人痛心的一幕。那些大声宣布“一劳永逸地铲除疯狂的竞争制度”的劳工领袖们，正在宣布个人自由的毁灭。在摧毁市场规律形成的秩序的同时，建立了由少数人的意志指导的新秩序。在这种新秩序里，只有少数人能获益，大多数人的个人自由将受到损害。</p><p>英国工党致力于建立一个“有计划的社会”，细看一下他们的新纲领就会发现，这个以反对“任何恢复传统的不列颠的企图”为目的的方案，在架构轮廓和细节上，甚至在措词方面，都和 25 年前主导德国舆论的社会主义梦想一致。</p><p>“一个有计划的社会能够比自由竞争制度下的社会更加自由”，这种天真想法放在 25 年前或许还情有可原，但在经历了 25 年的实践经验、对这些观念的再认识、与极权国家的战争之后，竟然在英国还被提倡就令人不由得感到悲哀了。</p><h2 id="第十四章：物质条件与道德理想">第十四章：物质条件与道德理想</h2><h3 id="1-14">1</h3><p>社会改造都要考虑经济因素。如今，人们的信念受到各种精心培养和刻意鼓吹的虚假经济学说的影响。被“洗脑”的人们会把诸如销毁积存原料或压制新发明等各种罪责都归咎于竞争，但实际上这些只会发生在垄断之下，特别是在政府支持的垄断之下。</p><p>我们这代人普遍地憎恨并反抗那些非人为的力量（译者注：这里的非人为力量指自发的市场秩序、生物自然进化等“看不见的手”的力量），不愿屈从任何规则或不明其所以然的任何要求。随着环境变得越来越复杂，人们对于那些不了解的、妨碍个人希望和计划的力量日益抗拒，进而变得越来越无法去充分地了解这些力量。人们往往会把一切过失都简单地归咎于一个显而易见的、直接的、可以避免的原因，完全无视那些导致变化的更为复杂的关联因素。</p><p>回看历史的长河，人类文明之所以能够成长壮大，正是因为顺应了非人为力量。正因如此，人们才能协力筑造非个人能够充分理解的伟大事物，才能理性地去了解并顺应那些未知力量。抗拒未知力量是一种不完全的、错误的唯理主义产物。在一个复杂的社会里，若要协调多种多样的个人努力，就必须认识到个人无法全知全察。</p><p>有些人认为我们必须学会像驾驭自然力量那样去驾驭社会力量。然而，这条路最终会通向极权主义，阻碍未来进步，导致我们文明的毁灭。提出这样的要求恰恰证明，这些人不了解非人为力量对个人努力所起的协调作用。</p><h3 id="2-14">2</h3><p>在战争和重大灾难发生时，为了保障长久的自由，人们可能会暂时牺牲眼前的自由。但是，在和平时期，不应容许任何单一的目的绝对凌驾于其它目的之上。即便是当务之急的保障就业的目标，也不能“不惜一切代价”，不管不顾其它目标。否则，由此引致的鼠目寸光的措施，以及不分好歹不负责任的思潮，将造成更大的危害。</p><p>随着社会环境由战争状态回归到和平正常化状态，战争期间安排到特殊专业化高薪岗位上的几十万人将有大批人员面临转业和随之而来的降薪。</p><p>如果工会不接受降薪，坚持要保障这些人原有的薪水水平，这将导致他们的失业。如果我们要不惜一切代价地既保薪水又保就业，那就会严重影响生产性资源的最佳调配。需要注意的是，就算实施货币政策也不能真正解决这个问题，而且还会引发大规模通货膨胀，从而隐而不宣地间接普降实际工资。极度的通货膨胀所造成的社会动荡、困苦和不公正等弊端将远超所要解决的问题本身。</p><p>维持原有岗位或者实施货币扩张政策，都有可能短期内保持较高的就业水平，但是，这无法阻拦必要的劳动力再分配。只要工人可以自由择业，劳动力的再分配就会发生，失业也就不可避免。用货币手段实现的高就业水平会降低劳动生产率，最终依然影响薪水水平和就业率。</p><h3 id="3-14">3</h3><p>战后，我们在管理经济事务方面需要更高的智慧，我们文明的最终命运也将取决于我们如何解决面临的一切经济问题。我们不应短视地仅通过收入再分配的办法去救治贫困，而应扩充增加收入的途径。</p><p>我们必须把希望寄托在恢复经济快速增长上。不管起点多低，增长将不断地把我们的生活水平推高。如果我们想要恢复甚至超越以往的水平，我们就必须作岀大幅调整。在确保每个人都享有统一的最低的福利保障水准的同时，个别阶层必须放弃其特权要求。</p><p>有些人承认现在的政治倾向威胁了我们的经济前景，但还自欺欺人地自我安慰，声称我们正在为实现理想目标而做出物质牺牲。然而，过去 50 年集体主义的发展并没有提升民众的道德水平，现在的我们比先辈更加愤恨社会秩序的不平等。</p><h3 id="4-14">4</h3><p>当物质环境迫使我们进行选择时，个人有决定自己行动的自由，并依照自己的良心安排自己的生活。只有当我们能对自己的利害关系负责，并且有牺牲它们的自由时，我们的决定才具有道德价值。我们没有权利以他人的利益为代价来博取自己无私的美名，另外，我们要是在没有选择自由的情况下做到了无私，这也谈不上道德。</p><p>现在较少得到尊重和守持的美德，诸如，独立、自力更生、甘愿担当风险、坚持自己的信仰、和邻人自愿地合作，这些实质上都是个人主义社会据以运作的基础。但集体主义消灭了这些美德，强迫要求个人服从于集体认为好的事情。在集体主义的作用下，个人扭转不平等现象的责任感被削弱，个人担当责任的意愿也受到损害。</p><p>自由与独立、真理与诚笃、和平与民主、把个人作为人而不仅作为一个有组织的集团中的一员来尊重——这些都是道德价值。而现在，社会保障的是封闭型集团成员的特殊权利，这是对非成员的歧视。政府为了某些集团的利益而强加于个人的不公正行动，是对基本人权的粗暴践踏，但民众们竟然都熟视无睹，这确凿地表明我们社会的道义感已变得非常迟钝。</p><h3 id="5-13">5</h3><p>英国人理应引以为傲的道德精华，诸如，独立和自力更生、个人独创性和地方自治、自愿活动、不干涉邻人事务和宽容异端、尊重风俗习惯和传统、对权力和权威的适度怀疑，这些形成了英国的民族性和整个道德精神的传统和制度，然而目前正在被集权主义倾向不断地毁灭着。</p><p>从德国人惨痛的经历里，我们应该懂得：在一个摧残人身自由和个人责任的制度里，无论是善意的动机，还是高效率的组织方式，都不足以使人安身立命。</p><p>如果我们要在思想战争中取得胜利，我们必须恢复对以往所维护的那些英国传统价值的信心，必须在道义上有勇气去坚定地维护我们敌人所攻击的那些理想。</p><h2 id="第十五章：展望国际秩序">第十五章：展望国际秩序</h2><p>在所有抑制民主的方法中，联邦制一直是最有效的和最相宜的……联邦制是通过分割统治权力并只把某些特定的权利指派给中央政府来限制和约束统治权力的。它是不仅抑制多数而且也抑制全体人民权力的唯一方法。——阿克顿勋爵</p><h3 id="1-15">1</h3><p>自从 19 世纪自由主义淡出国际关系领域，世界已经为之付出昂贵代价。然而遗憾的是，英国没能很好地吸取经验教训。在这个领域，那些令人向往和正在践行的流行观念带来的结果往往与其预示的大相径庭。</p><p>人们渐渐明白，许多全国规模的独立经济计划无论从总体上还是纯经济的观点来看，都是有害的，也必将引起国际摩擦。如果每个国家的举措都只从自身利益出发，不惜损害他国的利益，国际秩序和持久和平就没有希望。</p><p>很多经济计划只有在当局有效阻断外来影响的前提下才能得以实施，因此，计划体制的结果必然是对人员和货物的流通限制愈来愈多。</p><p>如果资源被各国独占，国际经济关系由个人升级为作为贸易实体的国家间的关系，各国的不和和猜忌将无法避免。那么在没有更高法律约束的情况下，各国间的经济交易必定会导致权力的冲突，甚至诉诸武力。</p><p>如果不利用好战争胜利的形势，任由这样下去，我们会发现我们打败了一个德国，但却建成了许多德国一样的国家组成的世界，德国只不过是“出头鸟”罢了。</p><h3 id="2-15">2</h3><p>一部分人提出建立“国际性”的经济计划，提议通过超国家主管机构来避免国家计划体制带来的危险。这是一个危险的提议，他们没考虑到，随着计划规模的扩大，一致看法会日益减少，借助强力和强制的必要性将逐渐增大。</p><p>大多数人愿意帮助别人解决问题，他们相信自己有能力做到公平公正。他们想象可以通过民主程序来管理和计划一个多国家的广大地区的经济生活。然而他们不了解的是，这样的国际性计划等同于赤裸裸的强力统治，正如德国对待弱小民族那样。</p><p>不能把德国的行为简单地归咎于它的邪恶，即使是心地最善良的人，要管理理想和价值标准差异很大的人民的经济生活，也难免要使用极不道德的手段。在这一点上，英国也不会例外。</p><p>有人认为，把决定权交给“人民”，各国工人阶级利益的一致性就会克服在各国统治阶级里存在的分歧。这完全是一种错觉。很有可能，在实行世界性计划体制时，国内的经济利益冲突会以更激烈的形式蔓延到整个世界，导致各国之间不得不诉诸武力。</p><p>可以肯定，富裕而强大的国家会成为贫困国家仇恨和猜忌的对象，后者会认为只要他们能自由地做他们想做的事，就能很快改善处境。国与国之间的公平分配问题，必将导致各国工人阶级之间的争斗。</p><p>制定这种计划必须要考虑好各种需求的优先顺序。但是大多数人会认为，被他人代为选定的某种特定优先顺序是极不公平的，从而会向决定他们命运的强国发泄他们的仇恨。无论处理这件事的人有多公正，当他们遭到反抗的时候，他们可能会第一个动用强力，表现得残酷无情。</p><h3 id="3-15">3</h3><p>一些现实主义者们相信，实行国际经济计划会比建立国际政治秩序更加切实可行。事实将告诉他们，一旦各国将经济权力交给一个国际性主管机构，不久他们就会发现，他们委托的绝不仅仅是一个技术任务，而是管理他们生活的最广泛的权力。</p><p>有人建议只把特定的经济权力委托给国际性主管机构，这个想法也是有问题的。任何不受更高权力约束的国际机构，即使在某个特定领域，也很容易施展其最暴虐、最不负责任的权力。</p><p>比如那些有意识地控制和分配主要原料之类的建议，它们将产生可怕的政治困难和道德危害。因为一旦得不到原料控制者的准许，新的行业和企业将不会产生。任何发展和改进计划都无法躲过原料控制者所拥有的极具破坏力的否决权。更不用说国际市场分配、投资控制和自然资源开发了。</p><p>不管大国小国，如果在国际上获得不受限制的主权，那就别指望战后秩序和持久和平。我们不能把一项在一国内都还没学会妥善使用的权力赋予一个新的超级国家，让他们指导各国如何使用资源。我们真正需要的是一种可以制止伤害他国行为的权力，我们需要一套规则来规定一个国家可以做什么，并为此设立一个主管机构。</p><p>这并不是要把很多权力集中在不负责任的国际经济机构手里，而是要赋予它更高的政治权力去制衡各种经济利益集团。因为它不参与经济角逐，所以它能够真正保持公平。它无权指挥各国如何行动，但可以制止他们损害他国的行为。它所拥有的是一种可以维持和平关系的最低限度的权力，几乎等同于那种极度自由主义的“自由放任”国家所拥有的权力。最重要的是，这种权力要在法治的约束之下。</p><h3 id="4-15">4</h3><p>我们可以考虑采用联邦制的形式，这是指在一种国际政府形式下，把某些严格规定的权力移交给国际机构，同时，仍由各国继续负责各自的国内事务。这是既能联合不同国家又不影响各国独立意愿的唯一治理形式。联邦制其实是把国内民主政治运用到了国际事务领域，它赋予治理机构明确和有限的权力。</p><p>面对杀戮我们不能只发表反对宣言，而应该赋予主管机构制止的权力。没有实施国际法的国际权力机构，国际法就没有意义。有人担心这样的国际权力机构掌握无限的权力，这个担心是多余的，因为联邦制遵循着分权原则，通过分权限制了整体权力。</p><p>联邦制的优点之一就是，它能使有害的计划难以实现，却给值得期待的计划大开方便之门。它使国际性计划只限于能达成一致意见的领域，其他领域则由更具资格的人自行负责。可以预见，在联邦内部，过去的在各国发生的集权进程将得到扭转，国家的某些权力下放给地方成为可能。</p><p>把不同国家吸收进一些大的或唯一的联邦集团组织，从而实现世界和平，这并不是什么新鲜的想法。实际上，它几乎是所有 19 世纪自由主义思想家的共同理想，只是 20 世纪甚嚣尘上的“现实政治”让这个目标变成了空想。</p><h3 id="5-14">5</h3><p>整体上看，联邦下的各国，小国人民生活美好体面，大国人民日子幸福美满。这并非偶然，因为他们躲过了中央集权的致命损害。如果把大多数决定权交给一个庞大的组织独揽，对这个组织普通人将无法测度和理解，我们也将无法维护和培育民主。</p><p>没有大规模地方自治，没有像培养未来领导人那样为民众提供国民教育学校，民主将很难实行。只有在人们熟悉的事务上练习和学会负起责任，只有了解身边的人的需要，而不是用关于人类需要什么的理论来指导，普通人才能真正参与公共事务。如果把政治活动的范围搞得过大，只有官僚机构才掌握有关这一政治活动的必要知识，那普通人参与的热情就会大大减弱。</p><p>只有在真正的法治下，小国才可能像在国内那样在国际事务中保持独立性。设计国际机构的宪制时，既要保证这种超国家机构执行共同法所需的权力，又要防止国际和国内当局成为暴政机构。创造一个适合小国生存的世界，对我们大家都有好处。</p><p>这次战争结束时，战胜国将迎来最好的机会，道义上的权力使他们有机会制定一个自己和他国都愿意服从的规则体系。</p><p>一个能有效阻止国家控制其国民的国际机构，是对和平的最好保障。国际范围内的法治必须保障国家不对个人、超级国家不对各个国家实施暴政。我们的目标既不是无限权力的超级国家，也不是“自由国家”的散漫联合体，而必须是自由人的国家组成的共同体。</p><p>只要善加运用，联邦制组织原则会是世界性问题的最佳解决方案。</p><p>不过，这个原则的运用并不容易。如果我们过于雄心勃勃，想把所有新的国际组织都搞成全方位的、世界规模的组织，那将很难成功。在我看来，文化、看法和标准上都更近似的国家之间，可以成立更紧密的联盟，这种更小的、更紧密的联盟也许会成为维护和平的更有效工具。当然，我们依然需要一个更大的、较为松散的联合体。这两件事之间并不矛盾。</p><h2 id="译后感：愿文明不分东西">译后感：愿文明不分东西</h2><p>昨天给《通往奴役之路》的缩译工作敲上了最后一个句号。十五章，合计 4 万字，篇幅差不多是之前译本的 1/4。阅读难度也大幅下降，把之前研究生也难读懂的学术专著，变成了高中生也能读懂的科普书籍。</p><p>特别巧，三年前也是今天，我缩译完了《论自由》。和上次不同的是，这次有了几位朋友相助。感谢我的挚友 Jason，在他的推动下，搁置了这么久的事情终于得以完成。也感谢朝阳、圈儿、阿离………谢谢你们的努力付出。</p><p>人类的历史，本质上是一部思想史。思想与思想之间的碰撞，引领着文明的走向。回望数千年的历史长河，总有一些思想火花闪烁其中，如暗夜里的星，指引我们前行。</p><p>博尔赫斯说，天堂应该是图书馆的模样。是的。只要从书架上抽出一本书，就能召唤出一位智者，听他娓娓道来。我们困惑已久的问题，他早已洞若观火。</p><p>以《通往奴役之路》为例，这本书出版于 1944 年，当时二战即将结束，整个世界面临路线选择的关口。哈耶克旗帜鲜明地批评计划经济、极权主义，呼吁市场经济、民主宪政。他在书中批评和担心的境况，之后果然在斯大林治下的苏联上演。</p><p>《纽约时报书评版》评论这本书是“写给我们这个时代最重要的一本书……以强有力的、严密的论证，为我们这个时代阐述了自由与权力的关系。”</p><p>遗憾的是，这么一部在世界思想史上的经典著作，居然没有很好的中译本。听过它的人远多于读过它的人。之前的译本和大多数政治学、哲学书一样，艰涩难懂。</p><p>今天，这部经典在中文世界里终于有了一个易读易懂的译本，我和朋友们心中的喜悦无以复加。回顾刚刚经历的魔幻之月，想说很多又不知如何说起。总之，以我辈微薄之力，愿文明不分东西。</p><p>我相信，文明的科普，会成为一个无限的游戏，它的目的不在于胜利，它不会结束，没有赢家，没有王者，但会有更多的人参与其中，从而延续这场游戏。</p>]]>
    </content>
    <id>https://editst.com/2022/the-road-to-serfdom/</id>
    <link href="https://editst.com/2022/the-road-to-serfdom/"/>
    <published>2022-08-14T16:58:46.000Z</published>
    <summary>
      <![CDATA[<blockquote>
<p>本文转载于公众号“火龙随笔”（各章节链接<a href="https://mp.weixin.qq.com/s/41JmCeEbfMTiSQkvbl4SIg">在此</a>），是对哈耶克《通往奴役之路》的缩译。此书在我的想读列表中已有许久，迟迟未翻开，无意中看到本文，和现时社会比对更显出哈耶克的先知先觉。本书出版于二战的末尾，国际社会面临向何处去的选择，如今站在全球化浪潮的末尾，面对被新冠彻底改变的世界，本书更具价值。</p>
<p>为方便阅读，同时以防万一，全文转载于此，以下内容均为“火龙随笔”原文，仅调整部分标点符号和格式，特此声明。</p>
</blockquote>
<p>本文内容缩译自哈耶克经典著作“The Road to Serfdom”, 1944，并参考了中国社会科学出版社 1997 版《通往奴役之路》的相关章节。本文提及的“社会主义”指的是德国和前苏联以计划经济为特征的社会主义。</p>]]>
    </summary>
    <title>《通往奴役之路》缩译</title>
    <updated>2022-08-14T16:58:46.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="随笔" scheme="https://editst.com/categories/%E9%9A%8F%E7%AC%94/"/>
    <category term="思想控制" scheme="https://editst.com/tags/%E6%80%9D%E6%83%B3%E6%8E%A7%E5%88%B6/"/>
    <content>
      <![CDATA[<p>近日又高强度浏览了许多社会新闻，看到“吴阿平”事件引发的新一轮对“文化入侵”的讨伐，特别是对日本文化符号的清洗，记录一下心中所感。</p><span id="more"></span><p>记得小时候总会觉得老一辈人思想僵化，不能接受新事物，等到下一代人长大了接替他们，一定会变好的。可我却忘了，人的“思想”完全依赖于后天的教育，想要改变下一代人的集体观念，只需要十几年的时间，甚至更短。犹记得在 2018 年 2 月 6 日看到的一条微博：</p><blockquote><p>柏林墙存在了 10316 天，今天是它倒塌的 10316 天。坍塌是所有墙注定的命运。</p></blockquote><p>当时我以为这个墙也包括了防火长城（GFW），可现在看来，它已经成功刻在了我们的脑中，甚至还进化了。当我们学会了用拼音缩写、谐音字、象形字甚至 emoji 来代替那些“危险”的词语，在点击发送前反复思考删除哪些内容才安全，甚至非法在境外发言时也不自觉地如此审查，就有一座座不会坍塌的墙成功了。</p><p>下一代脑中多了一座墙，少了过去几十年形成的一些基本共识：个人崇拜是危险的，市场经济更高效，中国是全球化最大的受益者，科学规律不以人的意志为转移。</p><p>他们熟练掌握了<strong>举报</strong>这个武器来党同伐异，在所有历史动态中挑拣“恨国”的蛛丝马迹，利用铁拳来打倒每一个不顺眼的人，直到铁拳打到自己头上。社会风气更趋保守，道德审查更为严苛。本应是“法无禁止即可为”，变成了“国家没说可以就不行”，反而对公权力是越发宽容，毕竟“政策是好的，都怪执行的人不行”。</p><p>当然，文中的“下一代”只是非常不精确的泛指，既有我的同代人，也有更年轻者，年长者亦不少。思想控制是如此容易和成功，我认为作为一代人而言是不会变好了。唯一能使我心安的，总有人能“越过长城，走向世界”，还是聚焦于个体，试着忘记这些宏大叙事吧。</p>]]>
    </content>
    <id>https://editst.com/2022/next-generation/</id>
    <link href="https://editst.com/2022/next-generation/"/>
    <published>2022-07-29T15:46:20.000Z</published>
    <summary>
      <![CDATA[<p>近日又高强度浏览了许多社会新闻，看到“吴阿平”事件引发的新一轮对“文化入侵”的讨伐，特别是对日本文化符号的清洗，记录一下心中所感。</p>]]>
    </summary>
    <title>下一代会好吗</title>
    <updated>2022-07-29T15:46:20.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="技术" scheme="https://editst.com/categories/%E6%8A%80%E6%9C%AF/"/>
    <category term="Microsoft 365" scheme="https://editst.com/tags/Microsoft-365/"/>
    <category term="Outlook" scheme="https://editst.com/tags/Outlook/"/>
    <category term="域名邮箱" scheme="https://editst.com/tags/%E5%9F%9F%E5%90%8D%E9%82%AE%E7%AE%B1/"/>
    <content>
      <![CDATA[<p>既然花钱买了域名，为啥不顺便搞个域名邮箱呢？在对比了各种域名邮箱服务（Yandex, Zoho, Cloudflare, iCloud）后，本着白嫖的原则，最终选择了 Microsoft 365 (aka Office 365) E5 开发者订阅托管域名邮箱。下面就简单介绍一下域名邮箱的配置，以及如何开启 Catch-all 功能。</p><span id="more"></span><h2 id="准备工作">准备工作</h2><p>首先注册 <a href="https://developer.microsoft.com/zh-cn/microsoft-365/dev-program">Microsoft 365 开发人员计划</a>，注意这个计划是 90 天一个周期续订的，可以通过调用 API 和<a href="https://developer.microsoft.com/zh-cn/microsoft-365/profile/settings/accounts-linked">绑定 GitHub 账号</a>等方法进行续期，具体操作可以自定搜索。当然也可以购买 Microsoft 365 商业版订阅，最低只需 43 CNY 每月哦。</p><h2 id="添加域名">添加域名</h2><p>前往 <a href="https://admin.microsoft.com">Mircosoft 365 admin center</a>，在左侧 <strong>设置-域</strong> 中选择 <strong>添加域</strong>，按照流程添加即可。通常需要添加 <code>TXT, MX, CNAME</code> 等记录。</p><h2 id="添加账号">添加账号</h2><p>Microsoft 365 E5 允许 25 个账号，可以在 <strong>用户-活跃用户</strong> 中添加，如果前面已经成功添加了域名，可以在添加用户时选择其邮箱地址域名为自己的域名。</p><h2 id="开启-DKIM">开启 DKIM</h2><blockquote><p>域密钥识别邮件 (DKIM) 是一种身份验证过程，可以帮助保护发件人和收件人免受伪造和网络钓鱼电子邮件的侵害。 将 DKIM 签名添加到您的域，以便收件人知道电子邮件实际上来自您组织中的用户，并且在发送后没有被修改。</p></blockquote><p>Microsoft 365 支持 DKIM 功能，但需要手动配置。前往 <a href="https://security.microsoft.com/dkimv2">Microsoft 365 Defender</a> 按照说明开启即可，需要额外增加两个 <code>CNAME</code> 记录。详细步骤可以看参考链接中的文档。</p><h2 id="开启-Catch-all">开启 Catch-all</h2><p>顾名思义，Catch-all 即收取所有发往该域名的邮件，无论是否在账号中配置了该用户名。Microsoft 365 没有原生提供这一选项，需要绕一点路来实现这个功能。</p><p>思路是创建一个邮件规则，把发往该域名的所有邮件重定向到某个邮箱，然后排除掉已经分配的用户邮箱，实现 Catch-all 功能。</p><h3 id="修改域类型">修改域类型</h3><p>前往 <a href="https://admin.exchange.microsoft.com/#/accepteddomains">Exchange 管理中心</a> <strong>邮件流-接受的域</strong>，将自己的域名修改为 <strong>内部中继</strong>。</p><h3 id="创建动态通讯组">创建动态通讯组</h3><p>为了避免把已分配用户的邮件重定向到其他邮箱，这里先创建一个包含所有用户的动态组。</p><p>前往 <a href="https://admin.exchange.microsoft.com/#/groups">收件人-组</a>，添加组，组类型选择 <strong>动态分布</strong>，分配用户时选择 <strong>仅以下收件人类型-具有 Exchange 邮箱的账户</strong>，分配一个邮件地址即可，例如 <code>exchange@example.com</code></p><h3 id="创建规则">创建规则</h3><p>前往 <a href="https://admin.exchange.microsoft.com/#/transportrules">邮件流-规则</a>，创建新规则。</p><ul><li>在以下情况应用此规则：<strong>发件人位于 组织外部</strong></li><li>执行以下操作：<strong>将邮件重定向到 &lt;你想要的邮箱&gt;</strong></li><li>除非：<strong>收件人为以下组的成员 <code>exchange@example.com</code></strong></li></ul><p>点击下面的更多选项可以增加 <strong>除非</strong>，选择前面创建的动态组，避免把已有用户的邮件重定向到其他邮箱。</p><p>这样就配置好了，可以给任意不存在的用户名发一封邮件来测试 Catch-all 功能。如果有不清楚的地方，可以看下方给出的参考链接。</p><h2 id="参考">参考</h2><ul><li><a href="https://docs.microsoft.com/zh-cn/microsoft-365/security/office-365-security/use-dkim-to-validate-outbound-email?view=o365-worldwide">使用 DKIM 验证从自定义域发送的出站电子邮件</a></li><li><a href="https://mjj.link/36.html">【E5利用】Microsoft 365 搭建邮局|设置catch-all邮箱</a></li></ul>]]>
    </content>
    <id>https://editst.com/2022/microsoft365-domain-email/</id>
    <link href="https://editst.com/2022/microsoft365-domain-email/"/>
    <published>2022-03-05T06:30:27.000Z</published>
    <summary>
      <![CDATA[<p>既然花钱买了域名，为啥不顺便搞个域名邮箱呢？在对比了各种域名邮箱服务（Yandex, Zoho, Cloudflare, iCloud）后，本着白嫖的原则，最终选择了 Microsoft 365 (aka Office 365) E5 开发者订阅托管域名邮箱。下面就简单介绍一下域名邮箱的配置，以及如何开启 Catch-all 功能。</p>]]>
    </summary>
    <title>Microsoft 365 搭建域名邮箱并开启 Catch-all</title>
    <updated>2022-03-05T06:30:27.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="转载" scheme="https://editst.com/categories/%E8%BD%AC%E8%BD%BD/"/>
    <category term="随机波动" scheme="https://editst.com/tags/%E9%9A%8F%E6%9C%BA%E6%B3%A2%E5%8A%A8/"/>
    <category term="播客" scheme="https://editst.com/tags/%E6%92%AD%E5%AE%A2/"/>
    <category term="徐州八孩母亲事件" scheme="https://editst.com/tags/%E5%BE%90%E5%B7%9E%E5%85%AB%E5%AD%A9%E6%AF%8D%E4%BA%B2%E4%BA%8B%E4%BB%B6/"/>
    <content>
      <![CDATA[<blockquote><p>我们在节目上线后一个半小时内迫于线下一些迫近的、令人感受到切实恐惧的压力，下架了这期节目。</p></blockquote><p>根据随机波动的 Newsletter，某些压力使她们下架了这期节目，这里尝试保存一下，音频文件在 <a href="https://d.pr/a/JXfMri">https://d.pr/a/JXfMri</a>，下附 Show Notes。</p><span id="more"></span><h2 id="Show-Notes">Show Notes</h2><p><img src="1653017666327950154.jfif" alt="封面图片"></p><p>本期随机波动，我们请到法律从业者、长期关注性别议题的黄思敏律师，从法理与实践层面，探讨妇女拐卖问题为何难以解决。在黄律师看来，受害人在这类案件中往往是缺失的、是面目模糊的，她们可能是被解救的数字，是被代言的声音，或者是精神失常的无法表达的女性。她们可能被当做有生育能力的子宫，能照料家庭的妻子，能养育儿女的母亲，唯独不是自己。</p><p>这种长久以来对女性的忽视也体现在法理层面，从法律的制定到实施，背后无不反映出长期浸润法律制定者和执法者的父权制文化。因此在现有情况下，我们要进行法理方面的讨论，比如拐卖妇女儿童罪中是否需要买卖同罪，以及拐卖妇女儿童这一罪名是否恰当，其背后是否反映出将妇女和儿童当做可交换的商品这一既有观念，以及更进一步，是否应该在“人口贩运”这一更大的框架中讨论拐卖问题。但同时我们也要意识到，仅仅从法律的视角进行讨论，是狭窄的，是有局限的。这一问题关乎贫困，关乎日益萎缩的社会救助网络，关乎性别不平等，也关乎长久以来难以撼动的父权制文化。在热度过去、舆论平息后，那条铁链能否松绑，那位女性的命运又将如何，没人有答案。</p><h3 id="【本期主播】">【本期主播】</h3><p>傅适野，媒体人，新浪微博@ssshiye</p><p>张之琪，媒体人，新浪微博@CyberZhiqi</p><p>冷建国，媒体人</p><h3 id="【本期嘉宾】">【本期嘉宾】</h3><p>黄思敏，律师，关注性别议题的法律工作</p><p>[03:00] 何谓“拐卖妇女儿童罪”？</p><p>[12:34] 受害人在打拐叙事里是缺席的</p><p>[18:20] 黄律师如何看待围绕“买卖同罪”的争论</p><p>[26:56] 立法是一回事，基层执法是另一回事</p><p>[31:22] 性别平等是漫长的事业，不可能靠一个个案来解决</p><p>[36:06] 在性别与阶级的交叉之下，同情之理解是可能的吗？</p><p>[43:44] 何谓人口贩运（human trafficking）？</p><p>[51:07] 国际公约视角下的本土反人口贩运立法</p><p>[53:28] 跨国贩运和受害者的“主体性”问题</p><p>[1:00:38] 如何完善受害者的保障体系？</p><h3 id="【本期节目中使用的音乐】">【本期节目中使用的音乐】</h3><p>片头：Ma’s Photo, by Stephen Rennicks, from Room OST</p><p>片尾：Try Everything, by Stephen Rennicks, from Room OST</p><h3 id="【关于随机波动】">【关于随机波动】</h3><p>感谢大家收听，你可以在微信和微博搜索随机波动StochasticVolatility，关注我们，也可以关注官网www.stovol.club ，还可以在苹果播客、spotify、pocketcast等泛用性客户端收听我们的节目。如果你喜欢我们的节目，别忘了在苹果播客给我们五星好评，也可以通过公众号推送中的二维码给我们打赏。</p>]]>
    </content>
    <id>https://editst.com/2022/stovol-81/</id>
    <link href="https://editst.com/2022/stovol-81/"/>
    <published>2022-02-26T15:12:54.000Z</published>
    <summary>
      <![CDATA[<blockquote>
<p>我们在节目上线后一个半小时内迫于线下一些迫近的、令人感受到切实恐惧的压力，下架了这期节目。</p>
</blockquote>
<p>根据随机波动的 Newsletter，某些压力使她们下架了这期节目，这里尝试保存一下，音频文件在 <a href="https://d.pr/a/JXfMri">https://d.pr/a/JXfMri</a>，下附 Show Notes。</p>]]>
    </summary>
    <title>【随机波动081】锁链下的鸿沟：与一线律师探讨妇女拐卖</title>
    <updated>2022-02-26T15:12:54.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="技术" scheme="https://editst.com/categories/%E6%8A%80%E6%9C%AF/"/>
    <category term="FIDO2" scheme="https://editst.com/tags/FIDO2/"/>
    <category term="PGP" scheme="https://editst.com/tags/PGP/"/>
    <category term="PIV" scheme="https://editst.com/tags/PIV/"/>
    <content>
      <![CDATA[<p>居然在 2021 年收到了 Canokey Pigeon，这很不鸽子。折腾了几个小时，把几个主要的用法都试了一遍，包括 OTP， FIDO2，OpenPGP Smartcard 和 PIV。除了 Windows 下 PIV 无法使用 <code>NIST P-256/P-384</code> 算法，以及某些 OpenPGP 最新的特性还未支持，整体算是物美价廉。</p><p>本指南<strong>基于 Windows 10 Powershell</strong>，其它操作系统基本也可参考使用。虽然本文基于 Canokey Pigeon，但大部分内容均可适用于其他硬件密钥，包括但不限于 Yubikey，Feitian key 等。同时本文的 <a href="#OpenPGP">OpenPGP 部分</a>也可单独作为比较完善的 PGP 使用指南来参考，<a href="#PIV">PIV 部分</a>基本可以说是目前最完整的中文使用指南。</p><span id="more"></span><h2 id="基础配置">基础配置</h2><p>拿到后插入电脑会自动弹出 <a href="https://console.canokeys.org">Canokey Web Console</a> 提示，也可通过自行访问，注意<strong>目前只支持 Chromium 内核浏览器</strong>，点击右上角连接，如果失败请尝试重新插拔后等待一会重试。</p><p>连接成功后会显示 Canokey 的信息，首先进入 <code>Settings</code> 设置全局的 <code>Admin PIN</code>（默认 <code>123456</code>） <strong>并牢记</strong>，同时可以配置部分选项，个人建议把 <code>WebUSB prompt enabled</code> 关闭，有些烦人。</p><p>注意这里的 <code>Admin PIN</code> <strong>只用于</strong> <a href="https://console.canokeys.org">Canokey Web Console</a> 的 <code>Settings</code>，与下方所有 <code>PIN</code> 均无关，请勿混淆，如觉得麻烦也可跳过这一步。</p><h2 id="OTP">OTP</h2><p>One-time Password (OTP) 是最常见的二步验证方法，主要分为 HMAC-based One-time Password algorithm (HOTP) 和 Time-based One-time Password (TOTP)，由于绝大部分平台支持的都是后者，本文仅介绍 TOTP。当然国内平台爱用的短信验证码也算一种 OTP，但是这种方法有其缺陷，并不自主可控。</p><p>如果那你使用过 Google Authenticator 之类的软件，那你一定对 TOTP 不陌生，其最常见的形式是一个有着 30 秒倒计时的六位数字，本质上是基于一个预共享的密钥和当前时间计算出的验证码。</p><p>通常网站会给出一个二维码让我们扫描，其内容一般如下</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">otpauth://totp/Example:alice@example.com?secret=JBSWY3DPEHPK3PXP&amp;issuer=Example</span><br></pre></td></tr></table></figure><p>在 <a href="https://console.canokeys.org">Canokey Web Console</a> 的 TOTP/HTOP 部分添加，重要的是 <code>secret</code> 参数，也就是密钥。部分网站可能会直接给出一个密钥，同样添加即可。Canokey 最多支持存储 128 个密钥，反正我是用不完。还可以通过 Yubico Authenticator 来管理和读取 OTP，可能需要到设置中指定 custom reader 为 canokey。</p><h2 id="FIDO2">FIDO2</h2><p>首先引用<a href="https://flyhigher.top/develop/2160.html">谈谈 WebAuthn</a> 的一段的介绍：</p><blockquote><p>FIDO2 标准主要包括四个部分，其一是用于网站和访客设备交互的 WebAuthn，而 Client to Authenticator Protocol 2（CTAP2，客户端-认证器协议）作为 WebAuthn 的补充，则是用于访客的设备和认证器交互的协议。标准的其他两个部分则是 U2F 和 UAF 规范。</p></blockquote><p>实际上这部分的使用是最简单的，只需要在支持的网站或应用中添加硬件密钥即可，目前大部分是用作 2FA，我自己常用的包括 GitHub, Cloudflare, Microsoft, Google, Twitter, Facebook 等，更多支持 FIDO2/U2F/TOTP 的网站可以参考 <a href="https://2fa.directory/int/">2FA Directory</a>。</p><p>注意部分网站添加时会首先弹出含有 <code>Windows Hello</code> 的选项，需要<strong>点击取消</strong>跳过，再添加硬件密钥。首次添加时需要自定义 <code>PIN</code>，牢记即可。</p><p>目前 Microsoft 账户支持使用硬件密钥实现单因素登录，即无需密码直接登录，可以进入账户的<a href="https://account.live.com/proofs/manage/additional">其他安全选项</a>部分进行添加。</p><h2 id="OpenPGP">OpenPGP</h2><p>这部分可以算是 Canokey 最主要的应用场景，关于 OpenPGP 的具体介绍就不在这里展开了，可以参考 <a href="https://ulyc.github.io/2021/01/13/2021%E5%B9%B4-%E7%94%A8%E6%9B%B4%E7%8E%B0%E4%BB%A3%E7%9A%84%E6%96%B9%E6%B3%95%E4%BD%BF%E7%94%A8PGP-%E4%B8%8A/">2021年，用更现代的方法使用 PGP</a> 系列文章。下面完整记录一下配置流程。</p><p>注意<strong>以下操作全部基于 Windows 10 Powershell，其它系统可能存在细微差异</strong>。为保护私钥安全，建议全程在<strong>离线、一次性环境中</strong>完成。</p><h3 id="安装">安装</h3><p>Windows 用户可下载 <a href="https://gpg4win.org/download.html">Gpg4Win</a>，Linux/macOS 用户使用对应包管理软件安装即可。</p><h3 id="生成主密钥">生成主密钥</h3><p>首先生成主密钥，注意以下全部密钥均为一次性示例，并非本人 PGP 密钥。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br></pre></td><td class="code"><pre><span class="line">gpg --expert --full-gen-key</span><br><span class="line"></span><br><span class="line">gpg (GnuPG) 2.3.4; Copyright (C) 2021 g10 Code GmbH</span><br><span class="line">This is free software: you are free to change and redistribute it.</span><br><span class="line">There is NO WARRANTY, to the extent permitted by law.</span><br><span class="line"></span><br><span class="line">Please select what kind of key you want:</span><br><span class="line">   (1) RSA and RSA</span><br><span class="line">   (2) DSA and Elgamal</span><br><span class="line">   (3) DSA (sign only)</span><br><span class="line">   (4) RSA (sign only)</span><br><span class="line">   (7) DSA (set your own capabilities)</span><br><span class="line">   (8) RSA (set your own capabilities)</span><br><span class="line">   (9) ECC (sign and encrypt) *default*</span><br><span class="line">  (10) ECC (sign only)</span><br><span class="line">  (11) ECC (set your own capabilities)</span><br><span class="line">  (13) Existing key</span><br><span class="line">  (14) Existing key from card</span><br><span class="line">Your selection? 11</span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">推荐使用 ECC 算法</span></span><br><span class="line"></span><br><span class="line">Possible actions for this ECC key: Sign Certify Authenticate</span><br><span class="line">Current allowed actions: Sign Certify</span><br><span class="line"></span><br><span class="line">   (S) Toggle the sign capability</span><br><span class="line">   (A) Toggle the authenticate capability</span><br><span class="line">   (Q) Finished</span><br><span class="line"></span><br><span class="line">Your selection? s</span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">主密钥只保留 Certify 功能，其他功能使用子密钥</span></span><br><span class="line"></span><br><span class="line">Possible actions for this ECC key: Sign Certify Authenticate</span><br><span class="line">Current allowed actions: Certify</span><br><span class="line"></span><br><span class="line">   (S) Toggle the sign capability</span><br><span class="line">   (A) Toggle the authenticate capability</span><br><span class="line">   (Q) Finished</span><br><span class="line"></span><br><span class="line">Your selection? q</span><br><span class="line"></span><br><span class="line">Please select which elliptic curve you want:</span><br><span class="line">   (1) Curve 25519 *default*</span><br><span class="line">   (2) Curve 448</span><br><span class="line">   (3) NIST P-256</span><br><span class="line">   (4) NIST P-384</span><br><span class="line">   (5) NIST P-521</span><br><span class="line">   (6) Brainpool P-256</span><br><span class="line">   (7) Brainpool P-384</span><br><span class="line">   (8) Brainpool P-512</span><br><span class="line">   (9) secp256k1</span><br><span class="line">Your selection? 1</span><br><span class="line"></span><br><span class="line">Please specify how long the key should be valid.</span><br><span class="line">         0 = key does not expire</span><br><span class="line">      &lt;n&gt;  = key expires in n days</span><br><span class="line">      &lt;n&gt;w = key expires in n weeks</span><br><span class="line">      &lt;n&gt;m = key expires in n months</span><br><span class="line">      &lt;n&gt;y = key expires in n years</span><br><span class="line">Key is valid for? (0) 0</span><br><span class="line">Key does not expire at all</span><br><span class="line">Is this correct? (y/N) y</span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">主密钥永不过期即可</span></span><br><span class="line"></span><br><span class="line">Real name: Editst</span><br><span class="line">Email address: editst@example.com</span><br><span class="line">Comment:</span><br><span class="line">You selected this USER-ID:</span><br><span class="line">    &quot;Editst &lt;editst@example.com&gt;&quot;</span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">这里按实际情况填写，注意保护自己的隐私</span></span><br><span class="line"></span><br><span class="line">Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o</span><br><span class="line"></span><br><span class="line">We need to generate a lot of random bytes. It is a good idea to perform</span><br><span class="line">some other action (type on the keyboard, move the mouse, utilize the</span><br><span class="line">disks) during the prime generation; this gives the random number</span><br><span class="line">generator a better chance to gain enough entropy.</span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">Windnows 下会弹出窗口输入密码，注意一定要保管好！！！</span></span><br><span class="line"></span><br><span class="line">gpg: revocation certificate stored as &#x27;C:\\Users\\XXX\\AppData\\Roaming\\gnupg\\openpgp-revocs.d\\68697537A54B1F0BFC05E1D9787E848E1A98D086.rev&#x27;</span><br><span class="line">public and secret key created and signed.</span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">会自动生成吊销证书，注意保存到安全的地方</span></span><br><span class="line"></span><br><span class="line">pub   ed25519/787E848E1A98D086 2022-01-01 [C]</span><br><span class="line">      Key fingerprint = 6869 7537 A54B 1F0B FC05  E1D9 787E 848E 1A98 D086</span><br><span class="line">uid                              Editst &lt;editst@example.com&gt;</span><br></pre></td></tr></table></figure><h3 id="生成子密钥">生成子密钥</h3><p>查看目前的私钥，可以发现只有一个用作 <code>Certify</code> 的主密钥。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">gpg --fingerprint --keyid-format long -K</span><br><span class="line">C:\Users\XXX\AppData\Roaming\gnupg\pubring.kbx</span><br><span class="line">------------------------------------------------</span><br><span class="line">sec   ed25519/787E848E1A98D086 2022-01-01 [C]</span><br><span class="line">      Key fingerprint = 6869 7537 A54B 1F0B FC05  E1D9 787E 848E 1A98 D086</span><br><span class="line">uid                 [ultimate] Editst &lt;editst@example.com&gt;</span><br></pre></td></tr></table></figure><p>下面生成不同功能的子密钥，其中 <code>&lt;fingerprint&gt;</code> 为上面输出的密钥指纹，本示例中即为 <code>68697537A54B1F0BFC05E1D9787E848E1A98D086</code>。最后的 <code>2y</code> 为密钥过期时间，可自行设置，如不填写默认永不过期。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">gpg --quick-add-key &lt;fingerprint&gt; cv25519 encr 2y</span><br><span class="line">gpg --quick-add-key &lt;fingerprint&gt; ed25519 auth 2y</span><br><span class="line">gpg --quick-add-key &lt;fingerprint&gt; ed25519 sign 2y</span><br></pre></td></tr></table></figure><p>再次查看目前的私钥，可以看到已经包含了这三个子密钥。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">gpg --fingerprint --keyid-format long -K</span><br><span class="line">C:\Users\XXX\AppData\Roaming\gnupg\pubring.kbx</span><br><span class="line">------------------------------------------------</span><br><span class="line">sec   ed25519/787E848E1A98D086 2022-01-01 [C]</span><br><span class="line">      Key fingerprint = 6869 7537 A54B 1F0B FC05  E1D9 787E 848E 1A98 D086</span><br><span class="line">uid                 [ultimate] Editst &lt;editst@example.com&gt;</span><br><span class="line">ssb   ed25519/055917609C9C0D7B 2022-01-01 [S] [expires: 2024-01-01]</span><br><span class="line">      Key fingerprint = E99F 3D15 7ACF 7E24 3DC8  FFE7 0559 1760 9C9C 0D7B</span><br><span class="line">ssb   ed25519/05F4A6C335157258 2022-01-01 [A] [expires: 2024-01-01]</span><br><span class="line">      Key fingerprint = C4B9 7EEC 4060 F856 7A4D  2956 05F4 A6C3 3515 7258</span><br><span class="line">ssb   cv25519/C5B8214C3AD21C6C 2022-01-01 [E] [expires: 2024-01-01]</span><br><span class="line">      Key fingerprint = E39E E067 3233 BD73 7ED1  15F1 C5B8 214C 3AD2 1C6C</span><br></pre></td></tr></table></figure><p>上面生成了三种功能的子密钥（ssb），分别为加密（E）、认证（A）、签名（S），对应 <code>OpenPGP Applet</code> 中的三个插槽。由于 <code>ECC</code> 实现的原因，加密密钥的算法区别于其他密钥的算法。</p><p>加密密钥用于加密文件和信息。签名密钥主要用于给自己的信息签名，保证这真的是来自<strong>我</strong>的信息。认证密钥主要用于 SSH 登录。</p><h3 id="UID-设置">UID 设置</h3><p>额外提醒，如果你想把这个密钥用于 Git Commit 的签名，同时提交到 GitHub，GitLab等服务，请确保 <code>UID</code> 信息 <code>Editst &lt;editst@example.com&gt;</code> 与你的本地 Git 邮箱以及 GitHub 已验证邮箱一致。</p><p>也可以单独添加 Git 使用的 <code>UID</code>。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">gpg --quick-add-uid &lt;fingerprint&gt; &#x27;Editst &lt;editst.github@example.com&gt;&#x27;</span><br></pre></td></tr></table></figure><p>gpg 会把你最近添加的 <code>UID</code> 作为主 <code>UID</code>，你也可以手动指定。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">gpg --quick-set-primary-uid &lt;fingerprint&gt; &#x27;Editst &lt;editst@example.com&gt;&#x27;</span><br></pre></td></tr></table></figure><h3 id="备份">备份</h3><p>首先导出公钥。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">gpg -ao public-key.pub --export 787E848E1A98D086</span><br></pre></td></tr></table></figure><p>然后分别导出各个私钥，请务必备份好，<strong>特别是主密钥和吊销证书</strong>，建议多介质异地备份。同时记得备份之前自动生成的吊销证书：<code>%APPDATA%\gnupg\openpgp-revocs.d\68697537A54B1F0BFC05E1D9787E848E1A98D086.rev</code>。</p><p>注意 <code>key id</code> 后面的 <code>!</code>，表示只导出这一个私钥，若没有的话默认导出全部私钥。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">gpg -ao sec-key.asc --export-secret-key 787E848E1A98D086!</span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">主密钥，请务必保存好！！！</span></span><br><span class="line">gpg -ao sign-key.asc --export-secret-key 055917609C9C0D7B!</span><br><span class="line">gpg -ao auth-key.asc --export-secret-key 05F4A6C335157258!</span><br><span class="line">gpg -ao encr-key.asc --export-secret-key C5B8214C3AD21C6C!</span><br></pre></td></tr></table></figure><p>具体备份策略可以参照 <a href="https://ulyc.github.io/2021/01/18/2021%E5%B9%B4-%E7%94%A8%E6%9B%B4%E7%8E%B0%E4%BB%A3%E7%9A%84%E6%96%B9%E6%B3%95%E4%BD%BF%E7%94%A8PGP-%E4%B8%AD/">2021年，用更现代的方法使用 PGP（中）</a></p><blockquote><ul><li>主密钥只保留一份，建议备份在一个全盘加密的U盘中，然后放在一个绝对安全的地方。</li><li>子密钥可以复制多份，通过U盘导入各个设备，专密专用，日常使用推荐用智能卡（比如Yubikey），还能免去每次输密码的麻烦</li><li>撤销凭证可以和主密钥放在一起备份一份， 另外单独备份一份（这样丢失密钥，起码还可以撤销）</li></ul></blockquote><p>下面介绍配合智能卡使用子密钥</p><h3 id="导入-Canokey">导入 Canokey</h3><p>首先修改 <code>OpenPGP Applet</code> 的密码</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br></pre></td><td class="code"><pre><span class="line">gpg --edit-card</span><br><span class="line">Reader ...........: canokeys.org OpenPGP PIV OATH 0</span><br><span class="line">Application ID ...: xxxxxxxxxxxxxxxxxxxxxxxxxxx</span><br><span class="line">Application type .: OpenPGP</span><br><span class="line">Version ..........: 3.4</span><br><span class="line">Manufacturer .....: CanoKeys</span><br><span class="line">Serial number ....: xxxxxxxx</span><br><span class="line">Signature PIN ....: forced</span><br><span class="line">Key attributes ...: rsa2048 rsa2048 rsa2048</span><br><span class="line">Max. PIN lengths .: 64 64 64</span><br><span class="line">PIN retry counter : 3 0 3</span><br><span class="line">Signature counter : 0</span><br><span class="line">UIF setting ......: Sign=off Decrypt=off Auth=off</span><br><span class="line">Signature key ....: [none]</span><br><span class="line">Encryption key....: [none]</span><br><span class="line">Authentication key: [none]</span><br><span class="line">General key info..: [none]</span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">进入 Admin 模式</span></span><br><span class="line"><span class="meta prompt_">gpg/card&gt; </span><span class="language-bash">admin</span></span><br><span class="line">Admin commands are allowed</span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_">gpg/card&gt; </span><span class="language-bash">passwd</span></span><br><span class="line">gpg: OpenPGP card no. xxxxxxxxxxxxxxxxxxxxxxxxxxx detected</span><br><span class="line"></span><br><span class="line">1 - change PIN</span><br><span class="line">2 - unblock PIN</span><br><span class="line">3 - change Admin PIN</span><br><span class="line">4 - set the Reset Code</span><br><span class="line">Q - quit</span><br></pre></td></tr></table></figure><p>分别设置 <code>PIN</code>（默认 <code>123456</code>） 和 <code>Admin PIN</code>（默认 <code>12345678</code>），注意牢记，忘记后只能重置 <code>OpenPGP Applet</code>。</p><p>之后把各个子密钥导入对应插槽，请注意，这步是<strong>不可逆</strong>的，一但私钥导入智能卡并保存，<strong>本地私钥会被删除</strong>，无法再次恢复，因此务必确认已经正确完善备份。</p><p>如果你使用了多个 Canokey，想同时向其中导入子密钥，请注意最后一步<strong>不要保存</strong>，直接强行退出，然后更换另一枚 Canokey 或其他智能卡，重复操作即可。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br></pre></td><td class="code"><pre><span class="line">gpg --edit-key 787E848E1A98D086</span><br><span class="line">gpg (GnuPG) 2.3.4; Copyright (C) 2021 g10 Code GmbH</span><br><span class="line">This is free software: you are free to change and redistribute it.</span><br><span class="line">There is NO WARRANTY, to the extent permitted by law.</span><br><span class="line"></span><br><span class="line">Secret key is available.</span><br><span class="line"></span><br><span class="line">sec  ed25519/787E848E1A98D086</span><br><span class="line">     created: 2022-01-01  expires: never       usage: C</span><br><span class="line">     trust: ultimate      validity: ultimate</span><br><span class="line">ssb  ed25519/055917609C9C0D7B</span><br><span class="line">     created: 2022-01-01  expires: 2024-01-01  usage: S</span><br><span class="line">ssb  ed25519/05F4A6C335157258</span><br><span class="line">     created: 2022-01-01  expires: 2024-01-01  usage: A</span><br><span class="line">ssb  cv25519/C5B8214C3AD21C6C</span><br><span class="line">     created: 2022-01-01  expires: 2024-01-01  usage: E</span><br><span class="line">[ultimate] (1). Editst &lt;editst@example.com&gt;</span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_">gpg&gt; </span><span class="language-bash">key 1 <span class="comment"># 首先选中第一个子密钥</span></span></span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_">gpg&gt; </span><span class="language-bash">keytocard</span></span><br><span class="line">Please select where to store the key:</span><br><span class="line">   (1) Signature key</span><br><span class="line">   (3) Authentication key</span><br><span class="line">Your selection? 1 # 选择对应插槽</span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">首先输入 OpenPGP 的密码，再输入 OpenPGP Applet 对应的 Admin PIN</span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">之后先反选 key 1，再依次选择 key 2，key 3，重复操作即可</span></span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_">gpg&gt; </span><span class="language-bash">key 1</span></span><br><span class="line"><span class="meta prompt_">gpg&gt; </span><span class="language-bash">key 2</span></span><br><span class="line"><span class="meta prompt_">gpg&gt; </span><span class="language-bash">keytocard</span></span><br><span class="line">Please select where to store the key:</span><br><span class="line">   (3) Authentication key</span><br><span class="line">Your selection? 3</span><br><span class="line"><span class="meta prompt_">gpg&gt; </span><span class="language-bash">key 2</span></span><br><span class="line"><span class="meta prompt_">gpg&gt; </span><span class="language-bash">key 3</span></span><br><span class="line"><span class="meta prompt_">gpg&gt; </span><span class="language-bash">keytocard</span></span><br><span class="line">Please select where to store the key:</span><br><span class="line">   (2) Encryption key</span><br><span class="line">Your selection? 2</span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_">gpg&gt; </span><span class="language-bash">save <span class="comment"># 保存修改</span></span></span><br></pre></td></tr></table></figure><p>这时再次查看 Canokey 状态，确认导入成功。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><span class="line">gpg --card-status</span><br><span class="line">Reader ...........: canokeys.org OpenPGP PIV OATH 0</span><br><span class="line">Application ID ...: xxxxxxxxxxxxxxxxxxxxxxxxxxx</span><br><span class="line">Application type .: OpenPGP</span><br><span class="line">Version ..........: 3.4</span><br><span class="line">Manufacturer .....: CanoKeys</span><br><span class="line">Serial number ....: xxxxxxxx</span><br><span class="line">Signature PIN ....: forced</span><br><span class="line">Key attributes ...: rsa2048 rsa2048 rsa2048</span><br><span class="line">Max. PIN lengths .: 64 64 64</span><br><span class="line">PIN retry counter : 3 0 3</span><br><span class="line">Signature counter : 0</span><br><span class="line">UIF setting ......: Sign=off Decrypt=off Auth=off</span><br><span class="line">Signature key ....: E99F 3D15 7ACF 7E24 3DC8  FFE7 0559 1760 9C9C 0D7B</span><br><span class="line">      created ....: 2022-01-01 13:09:11</span><br><span class="line">Encryption key....: E39E E067 3233 BD73 7ED1  15F1 C5B8 214C 3AD2 1C6C</span><br><span class="line">      created ....: 2022-01-01 13:09:32</span><br><span class="line">Authentication key: C4B9 7EEC 4060 F856 7A4D  2956 05F4 A6C3 3515 7258</span><br><span class="line">      created ....: 2022-01-01 13:09:49</span><br><span class="line">General key info..: sub  ed25519/055917609C9C0D7B 2022-01-01 Editst &lt;editst@example.com&gt;</span><br><span class="line">sec   ed25519/787E848E1A98D086  created: 2022-01-01  expires: never</span><br><span class="line"><span class="meta prompt_">ssb&gt; </span><span class="language-bash"> cv25519/055917609C9C0D7B  created: 2022-01-01  expires: 2024-01-01</span></span><br><span class="line">                                card-no: F1D0 xxxxxxxx</span><br><span class="line"><span class="meta prompt_">ssb&gt; </span><span class="language-bash"> ed25519/05F4A6C335157258  created: 2022-01-01  expires: 2024-01-01</span></span><br><span class="line">                                card-no: F1D0 xxxxxxxx</span><br><span class="line"><span class="meta prompt_">ssb&gt; </span><span class="language-bash"> ed25519/C5B8214C3AD21C6C  created: 2022-01-01  expires: 2024-01-01</span></span><br><span class="line">                                card-no: F1D0 xxxxxxxx</span><br></pre></td></tr></table></figure><p>可以看到此时子密钥标识符为 <code>ssb&gt;</code>，表示本地只有一个指向 <code>card-no: F1D0 xxxxxxxx</code> 智能卡的指针，已不存在私钥。现在可以删除掉主密钥了，请<strong>再次确认你已安全备份好主密钥</strong>。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">gpg --delete-secret-keys 787E848E1A98D086</span><br></pre></td></tr></table></figure><p>为确保安全，也可直接删除 gpg 的工作目录：<code>%APPDATA%\gnupg</code>，Linux/macOS: <code>~/.gunpg</code>。</p><h3 id="使用-Canokey">使用 Canokey</h3><p>此时切换回日常使用的环境，首先导入公钥</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">gpg --import public-key.pub</span><br></pre></td></tr></table></figure><p>然后设置子密钥指向 Canokey</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">gpg --edit-card</span><br><span class="line"><span class="meta prompt_">gpg/card&gt; </span><span class="language-bash">fetch</span></span><br></pre></td></tr></table></figure><p>此时查看本地的私钥，可以看到已经指向了 Canokey</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">gpg --fingerprint --keyid-format long -K</span><br><span class="line">C:\Users\XXX\AppData\Roaming\gnupg\pubring.kbx</span><br><span class="line">------------------------------------------------</span><br><span class="line"><span class="meta prompt_">sec# </span><span class="language-bash"> ed25519/787E848E1A98D086 2022-01-01 [C]</span></span><br><span class="line">      Key fingerprint = 6869 7537 A54B 1F0B FC05  E1D9 787E 848E 1A98 D086</span><br><span class="line">uid                 [ultimate] Editst &lt;editst@example.com&gt;</span><br><span class="line"><span class="meta prompt_">ssb&gt; </span><span class="language-bash"> ed25519/055917609C9C0D7B 2022-01-01 [S] [expires: 2024-01-01]</span></span><br><span class="line">      Key fingerprint = E99F 3D15 7ACF 7E24 3DC8  FFE7 0559 1760 9C9C 0D7B</span><br><span class="line">      Card serial no. = F1D0 xxxxxxxx</span><br><span class="line"><span class="meta prompt_">ssb&gt; </span><span class="language-bash"> ed25519/05F4A6C335157258 2022-01-01 [A] [expires: 2024-01-01]</span></span><br><span class="line">      Key fingerprint = C4B9 7EEC 4060 F856 7A4D  2956 05F4 A6C3 3515 7258</span><br><span class="line">      Card serial no. = F1D0 xxxxxxxx</span><br><span class="line"><span class="meta prompt_">ssb&gt; </span><span class="language-bash"> cv25519/C5B8214C3AD21C6C 2022-01-01 [E] [expires: 2024-01-01]</span></span><br><span class="line">      Key fingerprint = E39E E067 3233 BD73 7ED1  15F1 C5B8 214C 3AD2 1C6C</span><br><span class="line">      Card serial no. = F1D0 xxxxxxxx</span><br></pre></td></tr></table></figure><p>之后可以使用 gpg 进一步配置 Canokey，可以设置 <code>name</code>，<code>forcesig</code> 等内容，同时可前往 <a href="https://console.canokeys.org">Canokey Web Console</a> <code>Touch Policy</code> 配置每次使用时是否需要触摸以及缓存时间等。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line">gpg --card-edit</span><br><span class="line"></span><br><span class="line">gpg/card&gt; admin</span><br><span class="line">Admin commands are allowed</span><br><span class="line"></span><br><span class="line">gpg/card&gt; help</span><br><span class="line">quit           quit this menu</span><br><span class="line">admin          show admin commands</span><br><span class="line">help           show this help</span><br><span class="line">list           list all available data</span><br><span class="line">name           change card holder&#x27;s name</span><br><span class="line">url            change URL to retrieve key</span><br><span class="line">fetch          fetch the key specified in the card URL</span><br><span class="line">login          change the login name</span><br><span class="line">lang           change the language preferences</span><br><span class="line">salutation     change card holder&#x27;s salutation</span><br><span class="line">cafpr          change a CA fingerprint</span><br><span class="line">forcesig       toggle the signature force PIN flag</span><br><span class="line">generate       generate new keys</span><br><span class="line">passwd         menu to change or unblock the PIN</span><br><span class="line">verify         verify the PIN and list all data</span><br><span class="line">unblock        unblock the PIN using a Reset Code</span><br><span class="line">factory-reset  destroy all keys and data</span><br><span class="line">kdf-setup      setup KDF for PIN authentication (on/single/off)</span><br><span class="line">key-attr       change the key attribute</span><br><span class="line">uif            change the User Interaction Flag</span><br></pre></td></tr></table></figure><p>如果你使用了多个智能卡，切换后可能会因为私钥仍指向其他卡而出现问题，可以使用下面命令刷新 <code>Card serial no</code></p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">gpg-connect-agent &quot;scd serialno&quot; &quot;learn --force&quot; /bye</span><br></pre></td></tr></table></figure><h3 id="Git-Commit-签名">Git Commit 签名</h3><p>首先确保 Git 本地配置以及 GitHub 中的邮箱信息包含在 <code>UID</code> 中，然后设置 Git 来指定使用子密钥中的签名（S）密钥。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git config --global user.signingkey 055917609C9C0D7B</span><br></pre></td></tr></table></figure><p>之后在 <code>git commit</code> 时增加 <code>-S</code> 参数即可使用 gpg 进行签名。也可在配置中设置自动 gpg 签名，此处不建议全局开启该选项，因为有的脚本可能会使用 <code>git am</code> 之类的涉及到 <code>commit</code> 的命令，如果全局开启的话会导致问题。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git config commit.gpgsign true</span><br></pre></td></tr></table></figure><p>如果提交到 GitHub，前往 <a href="https://github.com/settings/keys">GitHub SSH and GPG keys</a> 添加公钥。此处添加后，可以直接通过对应 GitHub ID 来获取公钥：<code>https://github.com/&lt;yourid&gt;.gpg</code></p><h3 id="SSH-with-gpg-agent">SSH with gpg agent</h3><p>新版 gpg（最低 2.4.0 版本，对应 Gpg4win 4.1.0 版本）的 gpg agent 已支持 Win32-OpenSSH，无需使用其他软件即可使用目前 Windows 自带的 SSH 客户端进行公钥认证登录，需要手动配置开启该功能。</p><p>首先在 <code>%AppData%\gnupg\gpg-agent.conf</code> 中写入一行：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">enable-win32-openssh-support</span><br></pre></td></tr></table></figure><p>然后运行 <code>gpg -k --with-keygrip</code> 获取 [A] Subkey 的 Keygrip，写入 <code>%AppData%\gnupg\sshcontrol</code>，重启 gpg agent：</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">gpg-connect-agent killagent /bye</span><br><span class="line">gpg-connect-agent /bye</span><br></pre></td></tr></table></figure><p>查看 openSSH 读取到的公钥信息，把输出的公钥信息添加到服务器的 <code>~/.ssh/authorized_keys</code>。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">ssh-add -L</span><br><span class="line"></span><br><span class="line">ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAzFAR5puWAj0OflZJVzAJqejVEZCap2NhFJbzedYwX2 cardno:F1D0 xxxxxxxx</span><br></pre></td></tr></table></figure><p>此时连接 <code>ssh user@host</code>，会弹出提示输入 <code>PIN</code> 的页面，如果 <code>Touch Policy</code> 开启的话还需要触摸一下 Canokey，之后就可以连接到服务器了。</p><p>最后在启动目录 <code>%AppData%\Microsoft\Windows\Start Menu\Programs\Startup</code> 中增加一段 vbs 脚本，开机运行 gpg agent：</p><figure class="highlight vbs"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">Set</span> WinScriptHost = <span class="built_in">CreateObject</span>(<span class="string">&quot;WScript.Shell&quot;</span>)</span><br><span class="line">WinScriptHost.Run <span class="built_in">Chr</span>(<span class="number">34</span>) &amp; <span class="string">&quot;C:\Program Files (x86)\GnuPG\bin\gpg-connect-agent.exe&quot;</span> &amp; <span class="built_in">Chr</span>(<span class="number">34</span>) &amp; <span class="string">&quot;/bye&quot;</span> , <span class="number">0</span></span><br><span class="line"><span class="keyword">Set</span> WinScriptHost = <span class="literal">Nothing</span></span><br></pre></td></tr></table></figure><p>如果需要在 WSL/WSL2 或转发认证，可以进一步参考 <a href="https://github.com/rupor-github/win-gpg-agent/releases">win-gpg-agent</a> 的 GitHub 页面配置使用。</p><h2 id="PIV">PIV</h2><p><code>PIV Applet</code> 包含多个插槽，具体信息可以参考 <a href="https://developers.yubico.com/PIV/Introduction/Certificate_slots.html">PIV certificate slots</a>，前往 <a href="https://console.canokeys.org">Canokey Web Console</a>，进入 <code>PIV</code> 设置 <code>PIN</code>（默认 <code>123456</code>）和 <code>Management Key</code>（需要 24 Bytes，默认 <code>010203040506070801020304050607080102030405060708</code>）并牢记。</p><h3 id="生成证书">生成证书</h3><p>下面介绍两种不同的方法，可以根据自身需求选择。</p><p>注意，<s>受限于内存大小，Canokey PIV 证书<strong>最大支持 1335 Bytes</strong>，过大会导致无法导入</s> 2022年6月发售的 Canokey 据信已改进了这一问题，因本人目前不再持有 Canokey，无法测试。同时由于 Windows 系统的问题，Canokey PIV 目前只支持 <code>RSA2048</code> 算法，<code>NIST P-256/P-384</code> 算法生成的证书无法正常识别（没有 Canokey minidriver）。下面以 <code>RSA2048</code> 作为示例。</p><h4 id="OpenSSL">OpenSSL</h4><p>首先安装生成 <code>RSA2048</code> 私钥，然后使用 OpenSSL 生成证书</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">ssh-keygen -t rsa -b 2048 -m PEM -f rsa2048.pem</span><br><span class="line">openssl req -new -key rsa2048.pem -out editst.csr</span><br><span class="line">openssl x509 -req -days 3650 -in editst.csr -signkey rsa2048.pem -out editst.crt</span><br></pre></td></tr></table></figure><p>之后安装 <code>yubikey-manager</code> 导入私钥和证书，目前 <code>ckman</code> = <code>ykman</code>，这里使用 <code>9a</code> 插槽</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">python -m pip install yubikey-manager</span><br><span class="line">ykman -r Canokey piv keys import 9a rsa2048.pem</span><br><span class="line">ykman -r Canokey piv certificates import 9a editst.crt</span><br></pre></td></tr></table></figure><p>还可以直接使用 <code>ykman</code> 调用 Canokey 来生成私钥和证书，注意这样生成的私钥是无法导出的。也可以在导入私钥的情况下直接调用第二个命令，只生成证书。</p><p>下面 <code>-d</code> 参数为有效期，默认为 365 天，<code>-s</code> 参数为 <code>Subject for the certificate</code>，必须传入，具体内容包括 <code>CN: CommonName, OU: OrganizationalUnit, O: Organization, L: Locality, S: StateOrProvinceName, C: CountryName</code></p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">ykman -r Canokey piv keys generate 9a rsa2048.pub</span><br><span class="line">ykman -r Canokey piv certificates generate 9a rsa2048.pub -s &quot;CN=Editst, C=CN&quot; -d 3650</span><br></pre></td></tr></table></figure><p>完成后重新插拔 Canokey，Windows 前往 <code>certmgr.msc</code>，在个人-证书中可以看到已经有了刚才生成的证书。</p><h4 id="certreq">certreq</h4><p>在 Windows 环境下虽然没有自带的 OpenSSL 组件，但是提供了强大的 <code>certreq</code> 组件来生成证书。下面直接给出参考的配置，可以自行修改，也可以前往 <a href="https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certreq_1">certreq docs</a> 查看更详细地参数说明。</p><p>其中 <code>Subject</code> 具体内容包括 <code>CN: CommonName, OU: OrganizationalUnit, O: Organization, L: Locality, S: StateOrProvinceName, C: CountryName</code>，可以自行配置。</p><figure class="highlight ini"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="section">[NewRequest]</span></span><br><span class="line"><span class="attr">Subject</span> = <span class="string">&quot;CN=Editst&quot;</span></span><br><span class="line"><span class="attr">KeyLength</span> = <span class="number">2048</span></span><br><span class="line"><span class="attr">Exportable</span> = <span class="literal">TRUE</span></span><br><span class="line"><span class="attr">HashAlgorithm</span> = SHA256</span><br><span class="line"><span class="attr">KeySpec</span> = <span class="string">&quot;AT_KEYEXCHANGE&quot;</span></span><br><span class="line"><span class="attr">KeyUsage</span> = <span class="string">&quot;CERT_KEY_ENCIPHERMENT_KEY_USAGE&quot;</span></span><br><span class="line"><span class="attr">KeyUsageProperty</span> = <span class="string">&quot;NCRYPT_ALLOW_DECRYPT_FLAG&quot;</span></span><br><span class="line"><span class="attr">RequestType</span> = Cert</span><br><span class="line"><span class="attr">ValidityPeriodUnits</span> = <span class="number">5</span></span><br><span class="line"><span class="attr">ValidityPeriod</span> = Years</span><br><span class="line"><span class="attr">SMIME</span> = <span class="literal">FALSE</span></span><br></pre></td></tr></table></figure><p>保存上面的配置文件到 <code>cert.ini</code>，之后使用 certreq 生成证书，注意这一步生成的 <code>cert_req.req</code> 没啥用，直接删除即可</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">certreq -new cert.ini cert_req.req</span><br></pre></td></tr></table></figure><p>此时生成的证书已经自动安装在系统中，前往 <code>certmgr.msc</code>，在个人-证书中可以看到已经有了刚才生成的证书。右键选择<strong>所有任务-导出</strong>，在导出向导中选择<strong>导出私钥</strong>即可获得完整的证书和私钥文件 <code>cert.pfx</code>。</p><p>之后导入需要使用 <a href="https://developers.yubico.com/yubico-piv-tool/Releases/">yubikey-piv-tool</a>，下载安装后手动添加程序路径到环境变量中：<code>C:\Program Files\Yubico\Yubico PIV Tool\bin</code>，之后把证书和私钥导入到 Canokrey</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">yubico-piv-tool -r Canokey -a import-key -a import-certificate -s 9e -K PKCS12 -k -i cert.pfx</span><br></pre></td></tr></table></figure><p>需要首先输入导出证书时的密码，之后再输入 <code>Management Key</code></p><h3 id="SSH-with-PIV">SSH with PIV</h3><p>前往 <a href="https://github.com/buptczq/WinCryptSSHAgent">WinCrypt SSH Agent</a> 下载并运行，此时查看 <code>ssh-agent</code> 读取到的公钥信息，把输出的公钥信息添加到服务器的 <code>~/.ssh/authorized_keys</code></p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$</span><span class="language-bash">Env:SSH_AUTH_SOCK=<span class="string">&quot;\\.\pipe\openssh-ssh-agent&quot;</span></span></span><br><span class="line">ssh-add -L</span><br><span class="line"></span><br><span class="line">ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCYSnYY1UFzct9qi7QGNsE9GRJXmsy7HNLxHHO0uxuZTKQUT2OHrCHwVoeahPZRGwOXqxiziR6MxMVwK8mmfpM/2iRwkJhiW4AmeAA5s3zeO9sdZTYRzb9njCaa7uqOER6fbgW99ctp2LwsKxG0z2TvBgh+fwum96APggozLbapfweiWbbmymJ4J60p7yP/5a8Uh9AABNijp3iCmpnydICuWLG4Vtj4vMJ4NGNH5POY7qU0lvBULEXMXaFRoZrv93VRaj0hw2GOtgd9IdB+edSmze/vjJ+eodk5tqjLATi2BxlvSKPHDb14a34b5JK5idMUwlRfOOvOA10nZ7+kZetX Editst</span><br></pre></td></tr></table></figure><p>此时连接 <code>ssh user@host</code>，会弹出提示输入 <code>PIN</code> 的页面，注意此时输入的是 <code>PIV Applet PIN</code>，输入后即可成功连接服务器。</p><p>注意这种使用方法与 <a href="#SSH-with-gpg-agent">SSH with gpg-agent</a> 并不兼容，选择其中一种使用即可。</p><h3 id="BitLokcer-with-PIV">BitLokcer with PIV</h3><p>如果已经按照上一步生成了证书，需要修改注册表来允许自签名证书，在注册表 <code>HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\FVE</code> 下新建一个 <code>DWORD</code> 的值，名称为 <code>SelfSignedCertificates</code>，数值数据为 <code>1</code>。</p><p>或者直接保存下面的注册表配置文件为 <code>selfsig.reg</code>，然后导入。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">Windows Registry Editor Version 5.00</span><br><span class="line"></span><br><span class="line">[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\FVE]</span><br><span class="line">&quot;SelfSignedCertificates&quot;=dword:00000001</span><br></pre></td></tr></table></figure><p>注意，需要验证智能卡中<strong>存有证书对应的私钥</strong>，否则会导致可以添加智能卡，但在解锁时失败。运行下面命令，确保输出信息中<strong>包含私钥验证测试通过</strong>信息。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">certutil -scinfo</span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">应含有下面输出</span></span><br><span class="line">私钥验证</span><br><span class="line">Microsoft Smart Card Key Storage Provider: KeySpec=0</span><br><span class="line">AES256+RSAES_OAEP(RSA:CNG) 测试通过</span><br></pre></td></tr></table></figure><p>BitLocker 不要求证书具备 EKU 属性，但是如果已为证书配置了该属性，则必须将前往组策略<strong>计算机配置-管理模板-Windows 组件-BitLocker 驱动器加密</strong>，设置<strong>验证智能卡证书使用合规性</strong>为已启用，同时为 BitLocker 配置的对象标识符 (OID) 匹配的 OID。</p><p>如果遇到其他问题请尝试执行下面命令，初始化 <code>Card Holder Unique Identifier</code> 和 <code>CCC</code>。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">ykman -r Canokey piv objects generate chuid</span><br><span class="line">ykman -r Canokey piv objects generate ccc</span><br></pre></td></tr></table></figure><p>之后启用 BitLocker 时选择<strong>使用智能卡解锁驱动器</strong>即可，对于已启用 BitLocker 的驱动器，也可以通过<strong>管理 BitLocker</strong> 来添加智能卡。</p><p>感谢你看到这里，如有任何问题欢迎留言或邮件联系 <code>i#editst.com</code>，或者尝试从下面链接中寻找答案。</p><h2 id="参考">参考</h2><ul><li>2021年，用更现代的方法使用 PGP<a href="https://ulyc.github.io/2021/01/13/2021%E5%B9%B4-%E7%94%A8%E6%9B%B4%E7%8E%B0%E4%BB%A3%E7%9A%84%E6%96%B9%E6%B3%95%E4%BD%BF%E7%94%A8PGP-%E4%B8%8A/">（上）</a>，<a href="https://ulyc.github.io/2021/01/18/2021%E5%B9%B4-%E7%94%A8%E6%9B%B4%E7%8E%B0%E4%BB%A3%E7%9A%84%E6%96%B9%E6%B3%95%E4%BD%BF%E7%94%A8PGP-%E4%B8%AD/">（中）</a>，<a href="https://ulyc.github.io/2021/01/26/2021%E5%B9%B4-%E7%94%A8%E6%9B%B4%E7%8E%B0%E4%BB%A3%E7%9A%84%E6%96%B9%E6%B3%95%E4%BD%BF%E7%94%A8PGP-%E4%B8%8B/">（下）</a></li><li>用 PGP 保护代码完整性：<ul><li><a href="https://linux.cn/article-9524-1.html">（一）： 基本概念和工具</a></li><li><a href="https://linux.cn/article-9529-1-rel.html">（二）：生成你的主密钥</a></li><li><a href="https://linux.cn/article-9607-1.html">（三）：生成 PGP 子密钥</a></li><li><a href="https://linux.cn/article-10402-1-rel.html">（四）：将主密钥移到离线存储中</a></li><li><a href="https://linux.cn/article-10415-1.html">（五）：将子密钥移到一个硬件设备中</a></li><li><a href="https://linux.cn/article-10421-1.html">（六）：在 Git 上使用 PGP</a></li><li><a href="https://linux.cn/article-10432-1.html">（七）：保护在线帐户</a></li></ul></li><li><a href="https://docs.canokeys.org/userguide/">Documentation for Canokey</a></li><li><a href="https://iamtwz.gitbooks.io/yubikey-handbook-chinese/content/">Yubikey 使用手册</a></li><li><a href="https://lab.jinkan.org/2021/08/01/using-gpg-for-ssh-authentication-on-windows-10/">在 Windows 10 上用 GPG 完成 SSH 认证</a></li><li><a href="https://mechanus.io/ke-neng-shi-zui-hao-de-yubikey-gpg-ssh-zhi-neng-qia-jiao-cheng/">可能是最好的 Yubikey + GPG/SSH 智能卡教程</a></li><li><a href="https://hk.v2ex.com/t/607418">在 Windows 上愉快的使用 Yubikey 登录 SSH</a></li><li><a href="https://nwn.moe/posts/yubikey-examples/#%E4%BD%9C%E4%B8%BA%E5%AF%86%E9%92%A5%E8%BF%9B%E8%A1%8CSSH%E9%AA%8C%E8%AF%81">应用 Yubikey 的N种方法</a></li><li><a href="https://github.com/AsterisMono/ftsafe-k9plus-user-guide">ftsafe-k9plus-user-guide</a></li><li><a href="https://totoro.ink/yubikey-more.html">YubiKey 与 BitLocker</a></li><li><a href="https://nathanaelfrey.com/2021/01/09/setting-up-bitlocker-with-yubikey-as-smart-card/">Setting Up BitLocker with YubiKey as Smart Card</a></li></ul>]]>
    </content>
    <id>https://editst.com/2022/canokey-guide/</id>
    <link href="https://editst.com/2022/canokey-guide/"/>
    <published>2022-01-01T19:25:27.000Z</published>
    <summary>
      <![CDATA[<p>居然在 2021 年收到了 Canokey Pigeon，这很不鸽子。折腾了几个小时，把几个主要的用法都试了一遍，包括 OTP， FIDO2，OpenPGP Smartcard 和 PIV。除了 Windows 下 PIV 无法使用 <code>NIST P-256/P-384</code> 算法，以及某些 OpenPGP 最新的特性还未支持，整体算是物美价廉。</p>
<p>本指南<strong>基于 Windows 10 Powershell</strong>，其它操作系统基本也可参考使用。虽然本文基于 Canokey Pigeon，但大部分内容均可适用于其他硬件密钥，包括但不限于 Yubikey，Feitian key 等。同时本文的 <a href="#OpenPGP">OpenPGP 部分</a>也可单独作为比较完善的 PGP 使用指南来参考，<a href="#PIV">PIV 部分</a>基本可以说是目前最完整的中文使用指南。</p>]]>
    </summary>
    <title>Canokey 指南：OTP，FIDO2，PGP 与 PIV</title>
    <updated>2023-11-28T12:58:43.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="随笔" scheme="https://editst.com/categories/%E9%9A%8F%E7%AC%94/"/>
    <category term="播客" scheme="https://editst.com/tags/%E6%92%AD%E5%AE%A2/"/>
    <category term="年终总结" scheme="https://editst.com/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    <category term="读书" scheme="https://editst.com/tags/%E8%AF%BB%E4%B9%A6/"/>
    <content>
      <![CDATA[<p>今年没干啥正事，书倒是读了几本，播客也听了几个，还是小小总结一下吧。</p><p>首先是非虚构类：<a href="https://book.douban.com/subject/35230281/">《下沉年代》</a>用几个人交错的人生故事讲述了美国近三十年的变迁，是一种无可抗拒且无能为力的悲哀。<a href="https://book.douban.com/subject/25912076/">《叫魂》</a>则生动地描绘出近代中国普通民众对于这个制度的彻底绝望，所有人都不择手段地抓住任何可能的权力，拼命保护自己的一点点利益。<a href="https://book.douban.com/subject/30116399/">《跨越边界的社区》</a>展现出人的生命力，个人推动着社会的发展，在政府与条框中闯出一条生路。何伟的<a href="https://book.douban.com/subject/7060185/">《江城》</a>和<a href="https://book.douban.com/subject/6539859/">《甲骨文》</a>，对中国细致入微的观察，让我汗颜，要靠一位外国人来重新认识自己生活的地方。<a href="https://book.douban.com/subject/35325887/">《切尔诺贝利的午夜》</a>以异常流畅和生动的文字，展现出了这次事故的必然，甚至让人不能理解为何直到 1986 年 4 月 26 日才发生爆炸。此外，这一切都是如此的熟悉，仿佛就在身边。</p><p>至于虚构类，今年终于读了<a href="https://book.douban.com/subject/4820710/">《1984》</a>与<a href="https://book.douban.com/subject/27002046/">《美丽新世界》</a>，放在现在来看，仿佛不是一本小说，而是某种纪实文学，关于&quot;正确的集体记忆&quot;，关于&quot;老大哥&quot;，也关于&quot;独裁者&quot;。<a href="https://book.douban.com/subject/35197299/">《野猪渡河》</a>与<a href="https://book.douban.com/subject/35023261/">《猴杯》</a>都用那扑面而来的热带雨林气息，把人拖到那浓厚的瘴气中，见识上世纪马来西亚华人的残酷生活。<a href="https://book.douban.com/subject/35216559/">《仙症》</a>是一部短篇小说集，尽管会忍不住笑出来，然能体会到文字背后深沉的悲凉与无奈，某种被生活践踏后的坦然，堪称&quot;东北文学&quot;的代表。<a href="https://book.douban.com/subject/35494160/">《挽救计划》</a>用坚实的技术细节带来一种别样的浪漫，哪怕太阳就要毁灭，人类还是能用自己的智慧拼一拼。</p><p>最后还有几本值得推荐，就不展开了：<a href="https://book.douban.com/subject/35546622/">《置身事内》</a>，<a href="https://book.douban.com/subject/35546520/">《欧洲中世纪史》</a>，<a href="https://book.douban.com/subject/35005045/">《夜晚的潜水艇》</a>，<a href="https://book.douban.com/subject/35025453/">《失落的卫星》</a>。</p><p>以及今年最喜欢的几个播客，推荐使用泛用型客户端，包括但不限于 Apple Podcast, Pocket Casts, Google Podcasts, Spotify, Overcast 来收听。下列排名不分先后：<a href="https://justpodmedia.com/shows/left-right">忽左忽右</a>，<a href="https://justpodmedia.com/shows/theweirdo">不合时宜</a>，<a href="https://loudmurmursfm.com/">小声喧哗</a>，<a href="https://etw.fm/">声东击西</a>，<a href="https://www.stovol.club/">随机波动</a>，<a href="https://podcast.weareones.com/">迟早更新</a>，反派影评，八分，谐星聊天会。</p><p>祝开心。</p>]]>
    </content>
    <id>https://editst.com/2021/summary-2021-read-podcast/</id>
    <link href="https://editst.com/2021/summary-2021-read-podcast/"/>
    <published>2021-12-31T07:16:51.000Z</published>
    <summary>
      <![CDATA[<p>今年没干啥正事，书倒是读了几本，播客也听了几个，还是小小总结一下吧。</p>
<p>首先是非虚构类：<a href="https://book.douban.com/subject/35230281/">《下沉年代》</a>用几个人交错的人生故事讲述了美国近三十年的变迁，是]]>
    </summary>
    <title>2021 读书与播客小结</title>
    <updated>2021-12-31T07:16:51.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="随笔" scheme="https://editst.com/categories/%E9%9A%8F%E7%AC%94/"/>
    <category term="年终总结" scheme="https://editst.com/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    <content>
      <![CDATA[<p>或许确实是老了吧，记忆模糊得格外快，现在去想一年前的事情，都没什么鲜活的画面了。想想这一年，最大的感受是迷茫。说来可笑，都已经是研究生了，还看不清想不出前路在何方。去年考研的时候计划的就是读完硕士找个工作，可眼看还有大半年（甚至更早）就要面临找工作，却仍是毫无准备，像极了本科时骤然面对毕业季的我。</p><p>不管怎么样，还是写写今年的总结吧，希望能从中找到些许时光没有白白消逝的安慰。对了，依旧推荐收听一下声东击西今年的<a href="https://etw.fm/196">2021声音胶囊</a>。</p><span id="more"></span><p>对比去年下半年感觉逐渐放松的管控，今年由于各种新的变种特别是 Delta 变种的出现，国内重新出现了许多局部爆发案例，本来有望结束的疫情又变得更加紧张。最直观的感受就是更加不敢出门旅行了，生怕出现一两个病例，紧接着就被强制隔离。虽然接种了疫苗，可是看目前的情况，似乎也没按照预期的那样结束这一切。正相反，由于疫苗分配的不均衡，那些相对贫困而人口众多的区域成了病毒进化的培养皿，为我们带来了一波又一波的惊喜。唯一的好消息或许是，最近的 Omicron 变种症状似乎较为轻微，并且感染后似乎能获得对其他变种的免疫力，或许 COVID-19 似乎真的在流感化。</p><p>无论疫情如何，今年的世界算得上是风云变幻。先是<a href="https://zh.wikipedia.org/zh-cn/2021%E5%B9%B4%E7%BE%8E%E5%9B%BD%E5%9B%BD%E4%BC%9A%E5%A4%A7%E5%8E%A6%E9%81%AD%E5%86%B2%E5%87%BB%E4%BA%8B%E4%BB%B6">美国白宫骚乱</a>，特朗普的支持者们企图从拜登的手中拯救美国，未能如愿。紧接着是<a href="https://zh.wikipedia.org/zh-cn/2021%E5%B9%B4%E7%B7%AC%E7%94%B8%E8%BB%8D%E4%BA%8B%E6%94%BF%E8%AE%8A">缅甸政变</a>，军方成功吧昂山素季赶下台，激起的抗议延续至今。下半年美国从<a href="https://zh.wikipedia.org/zh-cn/%E7%BE%8E%E8%BB%8D%E6%92%A4%E5%87%BA%E9%98%BF%E5%AF%8C%E6%B1%97">阿富汗撤军</a>，随后毫不意外，塔利班重新统治了这片破碎的土地。前路茫茫，所谓的人类整体该去向何方？或许是<a href="https://zh.wikipedia.org/wiki/%E5%85%83%E5%AE%87%E5%AE%99">元宇宙</a>吧，就连 Facebook 也改名成 Meta，起码病毒应该学不会在元宇宙中传播。不过年末<a href="https://zh.wikipedia.org/wiki/%E8%A9%B9%E5%A7%86%E6%96%AF%C2%B7%E9%9F%A6%E4%BC%AF%E5%A4%AA%E7%A9%BA%E6%9C%9B%E8%BF%9C%E9%95%9C">韦伯望远镜</a>的成功发射，还是能给人一点渺茫的希望，或许我们真的能期待一下未来的星辰大海。</p><p>至于中国，自然是形势大好，不是小好，比以往任何时候都好！至于 <a href="https://zh.wikipedia.org/zh-hans/%E9%BB%84%E6%B2%B3%E7%9F%B3%E6%9E%97%E7%99%BE%E5%85%AC%E9%87%8C%E8%B6%8A%E9%87%8E%E8%B5%9B%E4%BA%8B%E6%95%85">5.22 白银越野赛事故</a>，<a href="https://zh.wikipedia.org/zh-hans/2021%E5%B9%B47%E6%9C%88%E6%B2%B3%E5%8D%97%E6%B0%B4%E7%81%BE">7.20 河南暴雨</a>，都是西方反动势力的阴谋，是他们用气候武器攻击我们的结果。还有 <a href="https://zh.wikipedia.org/zh-hans/2021%E5%B9%B4%E5%8D%81%E5%A0%B0%E7%87%83%E6%B0%94%E7%88%86%E7%82%B8%E4%BA%8B%E6%95%85">6.13 湖北十堰天燃气爆炸</a>，<a href="http://www.21jingji.com/2021/9-28/0MMDEzNzlfMTYyNzU0MA.html">东北拉闸限电</a>，<a href="https://cn.nytimes.com/china/20211115/corgi-clubbing-death/">江西上饶敲死小狗防疫</a>，房地产暴雷，都是不正确的记忆。让我们来看一下正确的2021年：我们<a href="http://www.qstheory.cn/dukan/qs/2021-11/30/c_1128110965.htm">正式进入了中国特色社会主义新时代</a>，所有人都充满了自信，相信明天会更好。不知为何，这么好的形势下<a href="https://zh.wikipedia.org/wiki/%E4%B8%AD%E5%9B%BD%E5%A4%A7%E9%99%86%E7%94%9F%E8%82%B2%E7%8E%87">中国生育率</a>却进一步下滑，生育意愿进一步降低，引出了<a href="http://www.moe.gov.cn/jyb_xwfb/moe_2082/2021/2021_zl53/">&quot;双减&quot;</a>、<a href="https://zh.wikipedia.org/wiki/%E4%B8%89%E5%AD%A9%E6%94%BF%E7%AD%96">“全面三胎”</a>，相信一定能药到病除，人均三孩，共建新时代。</p><p>说回自己，研究生生活已然过半，对这里的厌恶与日俱增，常常想起本科的生活，心情不好时出门走走，哪怕只是看看夜色中的灯光，也能舒缓不少。尽管去年就想着转行，可一直在纠结干什么，发现无非是老师、公务员与程序员。出于某种逃避的心理，亦或被闲散的生活所麻痹，这一年几乎都没有真正地为了找工作做些什么。直到前段时间去就业分享会上听了一下，才惊觉时间所剩无几，下定决心转码。可打开力扣，却发现自己离真正的程序员距离是如此遥远，原来之前写的所谓代码是那么的不入流。可还能如何呢？还有计算机网络、操作系统、数据结构和算法、设计模式等着我去速成，还要应付毫无意义的科研……但愿明年的这个时候，我可以安心地坐在这里，写一下找到工作后的心得吧。</p><p>再认真想想今年自己做了些什么，悲哀地发现似乎什么都没有留下，唯一值得说的，就是终于可以拿一个无偿献血金奖了吧。以及，最后还是把域名换成了 <code>.com</code>，主要是 <code>.me</code> 域名的价格太高了。</p><p>不过这一年还是尽可能出门逛了逛，去了<a href="https://editst.com/2021/macau-journey/">澳门</a>和<a href="https://editst.com/2021/shanghai-journey/">上海</a>，算是充分体验了资本主义的生活。还去影院看了激光 IMAX 的《沙丘》与《007：无暇赴死》，令人难忘。遗憾的是照例有许多影片无法在大荧幕上欣赏，赵婷的《无依之地》，《EVA 新剧场版：终》，《兹山鱼谱》……或许这就是文化自信吧，无论你的作品多优秀，我自岿然不动。说到自信，不知为何，西方势力辱华频率越来越高，手段越来越丰富，包括但不限于眯眯眼、雀斑脸、科普视频、新疆人权、华人导演，全靠人民群众的火眼金睛，识破他们的阴谋。我只是好奇，到最后剩下的还有什么呢？</p><p>每到这个时候都会问自己，这个世界会好吗？现在看来，大家对于&quot;世界&quot;的界定都在出现分裂，更不用说什么是&quot;好&quot;了。最明显的感受就是，越来越多的人不知道中国网络不是一开始就是一个局域网，不知道有一个叫做 GFW 的东西在时刻监控每一个经过的数据包。当然，那些为 GFW 叫好的人，就完全在我的理解能力之外了。不管这些，2021年还是结束了，太阳没有爆炸，人类没有灭绝，只是站在这&quot;新时代&quot;的交界处，我格外迷茫，为自己，也为我们所有人。</p><p>路途再黑暗，还是要继续前行，愿每一个人都能抵达美好的远方。</p>]]>
    </content>
    <id>https://editst.com/2021/summary-2021/</id>
    <link href="https://editst.com/2021/summary-2021/"/>
    <published>2021-12-30T15:24:51.000Z</published>
    <summary>
      <![CDATA[<p>或许确实是老了吧，记忆模糊得格外快，现在去想一年前的事情，都没什么鲜活的画面了。想想这一年，最大的感受是迷茫。说来可笑，都已经是研究生了，还看不清想不出前路在何方。去年考研的时候计划的就是读完硕士找个工作，可眼看还有大半年（甚至更早）就要面临找工作，却仍是毫无准备，像极了本科时骤然面对毕业季的我。</p>
<p>不管怎么样，还是写写今年的总结吧，希望能从中找到些许时光没有白白消逝的安慰。对了，依旧推荐收听一下声东击西今年的<a href="https://etw.fm/196">2021声音胶囊</a>。</p>]]>
    </summary>
    <title>2021 年终总结：该往何处去</title>
    <updated>2021-12-31T07:09:00.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="技术" scheme="https://editst.com/categories/%E6%8A%80%E6%9C%AF/"/>
    <category term="Vaultwarden" scheme="https://editst.com/tags/Vaultwarden/"/>
    <category term="Bitwarden" scheme="https://editst.com/tags/Bitwarden/"/>
    <category term="Docker" scheme="https://editst.com/tags/Docker/"/>
    <content>
      <![CDATA[<p>之前一直在寻找一个支持跨平台的密码管理工具，先后尝试了 1Password 和 LastPass，但是迫于贫穷，切换到了开源的 <a href="https://bitwarden.com">Bitwarden</a>。后来发现了它的另一个实现 <a href="https://github.com/dani-garcia/vaultwarden">Vaultwarden</a>（原名 Bitwarden_rs），可以很方便的使用 Docker 自己部署，同时支持了高级版的 TOTP 等功能。</p><p>下面简单记录一下部署的流程，以及部分安全设置，如自动备份等。</p><span id="more"></span><h2 id="Vaultwarden-部署">Vaultwarden 部署</h2><p>首先安装 Docker 与 Docker Compose，<a href="https://docs.docker.com/engine/install/">参考这里</a>。</p><p>新建 <code>docker-compose.yml</code> 配置文件，参考下面填写，注意 <code>DOMAIN</code> 填入自己的实际域名。</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">version:</span> <span class="string">&#x27;3.4&#x27;</span></span><br><span class="line"></span><br><span class="line"><span class="attr">services:</span></span><br><span class="line"></span><br><span class="line">  <span class="attr">vaultwarden:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">vaultwarden/server:latest</span></span><br><span class="line">    <span class="attr">restart:</span> <span class="string">always</span></span><br><span class="line">    <span class="attr">ports:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&#x27;8080:80&#x27;</span></span><br><span class="line">    <span class="attr">volumes:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">/vw-data/:/data/</span></span><br><span class="line">    <span class="attr">environment:</span></span><br><span class="line">      <span class="attr">DOMAIN:</span> <span class="string">&lt;Your</span> <span class="string">Domain&gt;</span></span><br><span class="line">      <span class="attr">SIGNUPS_ALLOWED:</span> <span class="literal">true</span></span><br></pre></td></tr></table></figure><p>之后进入该目录下启动即可。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">docker-compose up -d</span><br></pre></td></tr></table></figure><h3 id="cloudflare-证书">cloudflare 证书</h3><p>为了方便起见，这里直接使用了 cloudflare 代理域名，同时可以前往 SSL/TLS -&gt; 源服务器下载其生成的主机证书，用来加密 cloudflare 与主机间的通讯。</p><p>将私钥与公钥分别保存在 <code>/etc/nginx/ssl/cloudflare.key</code>，<code>/etc/nginx/ssl/cloudflare.pem</code>。</p><h3 id="nginx-配置">nginx 配置</h3><p>下面给出 nginx 的配置参考。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br></pre></td><td class="code"><pre><span class="line">server &#123;</span><br><span class="line">    listen              443 ssl http2;</span><br><span class="line">    listen              [::]:443 ssl http2;</span><br><span class="line">    server_name         vw.example.com;</span><br><span class="line"></span><br><span class="line">    # SSL</span><br><span class="line">    ssl_certificate     /etc/nginx/ssl/cloudflare.pem;</span><br><span class="line">    ssl_certificate_key /etc/nginx/ssl/cloudflare.key;</span><br><span class="line"></span><br><span class="line">    # restrict methods</span><br><span class="line">    if ($request_method !~ ^(GET|POST|PUT|DELETE)$) &#123;</span><br><span class="line">        return &#x27;403&#x27;;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    # Allow large attachments</span><br><span class="line">    client_max_body_size 128M;</span><br><span class="line"></span><br><span class="line">    # only allow cloudflare ip</span><br><span class="line">    include /etc/nginx/cfip.conf;</span><br><span class="line">    deny all;</span><br><span class="line"></span><br><span class="line">    # logging</span><br><span class="line">    access_log /var/log/nginx/vw.access.log;</span><br><span class="line">    error_log  /var/log/nginx/vw.error.log warn;</span><br><span class="line"></span><br><span class="line">    # reverse proxy</span><br><span class="line">    location / &#123;</span><br><span class="line">        proxy_pass http://127.0.0.1:8080;</span><br><span class="line">        proxy_http_version                 1.1;</span><br><span class="line">        proxy_cache_bypass                 $http_upgrade;</span><br><span class="line"></span><br><span class="line">        # Proxy headers</span><br><span class="line">        proxy_set_header Upgrade           $http_upgrade;</span><br><span class="line">        proxy_set_header Connection        $connection_upgrade;</span><br><span class="line">        proxy_set_header Host              $host;</span><br><span class="line">        proxy_set_header X-Real-IP         $remote_addr;</span><br><span class="line">        proxy_set_header Forwarded         $proxy_add_forwarded;</span><br><span class="line">        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;</span><br><span class="line">        proxy_set_header X-Forwarded-Proto $scheme;</span><br><span class="line">        proxy_set_header X-Forwarded-Host  $host;</span><br><span class="line">        proxy_set_header X-Forwarded-Port  $server_port;</span><br><span class="line"></span><br><span class="line">        # Proxy timeouts</span><br><span class="line">        proxy_connect_timeout              60s;</span><br><span class="line">        proxy_send_timeout                 60s;</span><br><span class="line">        proxy_read_timeout                 60s;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    # gzip</span><br><span class="line">    gzip            on;</span><br><span class="line">    gzip_vary       on;</span><br><span class="line">    gzip_proxied    any;</span><br><span class="line">    gzip_comp_level 6;</span><br><span class="line">    gzip_types      text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>为了安全，这里使用 cloudflare 进行代理，同时限制只允许 cloudflare 的 ip 访问，配置文件如下 <code>/etc/nginx/cfip.conf</code></p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line"># https://www.cloudflare.com/ips</span><br><span class="line"># IPv4</span><br><span class="line">allow 173.245.48.0/20;</span><br><span class="line">allow 103.21.244.0/22;</span><br><span class="line">allow 103.22.200.0/22;</span><br><span class="line">allow 103.31.4.0/22;</span><br><span class="line">allow 141.101.64.0/18;</span><br><span class="line">allow 108.162.192.0/18;</span><br><span class="line">allow 190.93.240.0/20;</span><br><span class="line">allow 188.114.96.0/20;</span><br><span class="line">allow 197.234.240.0/22;</span><br><span class="line">allow 198.41.128.0/17;</span><br><span class="line">allow 162.158.0.0/15;</span><br><span class="line">allow 104.16.0.0/13;</span><br><span class="line">allow 104.24.0.0/14;</span><br><span class="line">allow 172.64.0.0/13;</span><br><span class="line">allow 131.0.72.0/22;</span><br><span class="line"></span><br><span class="line"># IPv6</span><br><span class="line">allow 2400:cb00::/32;</span><br><span class="line">allow 2405:8100::/32;</span><br><span class="line">allow 2405:b500::/32;</span><br><span class="line">allow 2606:4700::/32;</span><br><span class="line">allow 2803:f800::/32;</span><br><span class="line">allow 2c0f:f248::/32;</span><br><span class="line">allow 2a06:98c0::/29;</span><br></pre></td></tr></table></figure><p>检查配置无误后重启 nginx 即可。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">nginx -t</span><br><span class="line">systemctl restart nginx</span><br></pre></td></tr></table></figure><p>一切正常的话此时已经可以访问 <code>https://vw.example.com</code>，注册一个自己的账户并<strong>记住密码</strong>。</p><h2 id="自动备份">自动备份</h2><p>使用 <a href="https://github.com/ttionya/vaultwarden-backup">vaultwarden-backup</a> 实现自动备份数据。</p><p>首先配置 rclone，即配置网盘的 Token。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">docker run --rm -it \</span><br><span class="line">  --mount type=volume,source=vaultwarden-rclone-data,target=/config/ \</span><br><span class="line">  ttionya/vaultwarden-backup:latest \</span><br><span class="line">  rclone config</span><br></pre></td></tr></table></figure><p>之后验证 rclone 配置</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">docker run --rm -it \</span><br><span class="line">  --mount type=volume,source=vaultwarden-rclone-data,target=/config/ \</span><br><span class="line">  ttionya/vaultwarden-backup:latest \</span><br><span class="line">  rclone config show</span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">Microsoft Onedrive Example</span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">[YouRemoteName]</span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash"><span class="built_in">type</span> = onedrive</span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">token = &#123;<span class="string">&quot;access_token&quot;</span>:<span class="string">&quot;access token&quot;</span>,<span class="string">&quot;token_type&quot;</span>:<span class="string">&quot;token type&quot;</span>,<span class="string">&quot;refresh_token&quot;</span>:<span class="string">&quot;refresh token&quot;</span>,<span class="string">&quot;expiry&quot;</span>:<span class="string">&quot;expiry time&quot;</span>&#125;</span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">drive_id = driveid</span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">drive_type = personal</span></span><br></pre></td></tr></table></figure><p>编辑上面的 <code>docker-compose.yml</code>，加入自动备份，注意将里面的 <code>RCLONE_REMOTE_NAME</code> 替换为上面配置 rclone 时填入的名字。同时这里关闭了新用户注册。</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">version:</span> <span class="string">&#x27;3.4&#x27;</span></span><br><span class="line"></span><br><span class="line"><span class="attr">services:</span></span><br><span class="line"></span><br><span class="line">  <span class="attr">vaultwarden:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">vaultwarden/server:latest</span></span><br><span class="line">    <span class="attr">restart:</span> <span class="string">always</span></span><br><span class="line">    <span class="attr">ports:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&#x27;8080:80&#x27;</span></span><br><span class="line">    <span class="attr">volumes:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">/vw-data/:/data/</span></span><br><span class="line">    <span class="attr">environment:</span></span><br><span class="line">      <span class="attr">DOMAIN:</span> <span class="string">&lt;Your</span> <span class="string">Domain&gt;</span></span><br><span class="line">      <span class="attr">SIGNUPS_ALLOWED:</span> <span class="literal">false</span></span><br><span class="line"></span><br><span class="line">  <span class="attr">backup:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">ttionya/vaultwarden-backup:latest</span></span><br><span class="line">    <span class="attr">restart:</span> <span class="string">always</span></span><br><span class="line">    <span class="attr">environment:</span></span><br><span class="line">      <span class="attr">RCLONE_REMOTE_NAME:</span> <span class="string">&#x27;YouRemoteName&#x27;</span></span><br><span class="line">      <span class="attr">CRON:</span> <span class="string">&#x27;0 2 * * *&#x27;</span></span><br><span class="line">      <span class="attr">BACKUP_KEEP_DAYS:</span> <span class="number">10</span></span><br><span class="line">    <span class="attr">volumes:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">/vw-data/:/bitwarden/data/</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">vaultwarden-rclone-data:/config/</span></span><br><span class="line"></span><br><span class="line"><span class="attr">volumes:</span></span><br><span class="line">  <span class="attr">vaultwarden-rclone-data:</span></span><br><span class="line">    <span class="attr">external:</span> <span class="literal">true</span></span><br><span class="line">    <span class="attr">name:</span> <span class="string">vaultwarden-rclone-data</span></span><br></pre></td></tr></table></figure><p>此外还可以配置自动发送邮件等，具体可<a href="https://github.com/ttionya/vaultwarden-backup/blob/master/README_zh.md">前往这里</a>查看。</p><p>重新启动 Docker Compose 即可</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">docker-compose down</span><br><span class="line">docker-compose up -d</span><br></pre></td></tr></table></figure><h2 id="参考">参考</h2><ul><li><a href="https://github.com/dani-garcia/vaultwarden/wiki">Vaultwarden Wiki</a></li><li><a href="https://github.com/ttionya/vaultwarden-backup/blob/master/README_zh.md">Vaultwarden-backup README</a></li><li><a href="https://yeasy.gitbook.io/docker_practice">Docker 从入门到实践</a></li><li><a href="https://ttys3.dev/post/deploy-rust-based-bitwarden-container/">部署基于 Rust 的第三方 Bitwarden 服务端容器</a></li></ul>]]>
    </content>
    <id>https://editst.com/2021/vaultwarden/</id>
    <link href="https://editst.com/2021/vaultwarden/"/>
    <published>2021-12-29T04:04:25.000Z</published>
    <summary>
      <![CDATA[<p>之前一直在寻找一个支持跨平台的密码管理工具，先后尝试了 1Password 和 LastPass，但是迫于贫穷，切换到了开源的 <a href="https://bitwarden.com">Bitwarden</a>。后来发现了它的另一个实现 <a href="https://github.com/dani-garcia/vaultwarden">Vaultwarden</a>（原名 Bitwarden_rs），可以很方便的使用 Docker 自己部署，同时支持了高级版的 TOTP 等功能。</p>
<p>下面简单记录一下部署的流程，以及部分安全设置，如自动备份等。</p>]]>
    </summary>
    <title>部署自己的密码库 Vaultwarden</title>
    <updated>2023-11-22T15:09:06.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="技术" scheme="https://editst.com/categories/%E6%8A%80%E6%9C%AF/"/>
    <category term="Python" scheme="https://editst.com/tags/Python/"/>
    <category term="PyPi" scheme="https://editst.com/tags/PyPi/"/>
    <content>
      <![CDATA[<p>前段时间为了方便预定学校的羽毛球场，写了一个简单的脚本来自动提交请求。为了方便分发给别人使用，同时保证相对匿名，想了许多方法。最开始专门新建了一个 GitHub 账号，使用匿名 Gist 发布代码。后来发现国内连通性太差，同时更新也不是怎么方便，于是研究了一下如何打包发布到 PyPi，可以更简单地安装和使用。</p><span id="more"></span><h2 id="注册-PyPi-账号">注册 PyPi 账号</h2><p>首先前往<a href="https://pypi.org/">官网</a>注册一个自己的账号，并生成一个 API Token，记录下来。之后前往 <code>$HOME</code> 目录，新建一个 <code>.pypirc</code> 配置文件，只需要将 password 改为上面 Token 即可。</p><figure class="highlight ini"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="section">[pypi]</span></span><br><span class="line">  <span class="attr">username</span> = __token__</span><br><span class="line">  <span class="attr">password</span> = &lt;YOUR_TOKEN&gt;</span><br></pre></td></tr></table></figure><h2 id="配置包文件">配置包文件</h2><h3 id="主文件">主文件</h3><p>下面给出一个简单的例子，假定包名（文件夹名）为 <code>example</code>，其中主要文件为 <code>example.py</code>。</p><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># example.py</span></span><br><span class="line"><span class="keyword">class</span> <span class="title class_">Example</span>()</span><br><span class="line"></span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">__init__</span>(<span class="params">self, name</span>):</span><br><span class="line">        <span class="built_in">print</span>(<span class="string">f&#x27;hello <span class="subst">&#123;name&#125;</span>!&#x27;</span>)</span><br><span class="line"></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">main</span>():</span><br><span class="line">    example = Example(<span class="string">&#x27;world&#x27;</span>)</span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> __name__ == <span class="string">&#x27;__main__&#x27;</span>:</span><br><span class="line">    main()</span><br></pre></td></tr></table></figure><h3 id="init-py"><code>__init__.py</code></h3><p>要想被 python 识别成包，根目录下必须包含 <code>__init__.py</code> 文件。如果之前没有的话，新建一个文件，并导入包即可。</p><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">from</span> example <span class="keyword">import</span> Example, main</span><br></pre></td></tr></table></figure><h3 id="main-py"><code>__main__.py</code></h3><p>如果想要自己的包可以用 <code>python -m your_package</code> 的方式执行，需要添加 <code>__main.py__</code>，即给自己的包增加一个 <code>main</code> 函数。</p><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">from</span> example <span class="keyword">import</span> main</span><br><span class="line"></span><br><span class="line">main()</span><br></pre></td></tr></table></figure><h2 id="配置-setup-py">配置 <code>setup.py</code></h2><p>下面进入上一层目录，配置打包所需要的 <code>setup.py</code></p><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">from</span> setuptools <span class="keyword">import</span> setup</span><br><span class="line"></span><br><span class="line">setup(</span><br><span class="line">    name=<span class="string">&#x27;example&#x27;</span>,</span><br><span class="line">    version=<span class="string">&#x27;0.0.1&#x27;</span>,</span><br><span class="line">    python_requires=<span class="string">&#x27;&gt;=3.6.0&#x27;</span>,</span><br><span class="line">    author=<span class="string">&#x27;Editst&#x27;</span>,</span><br><span class="line">    author_email=<span class="string">&#x27;editst@example.com&#x27;</span>,</span><br><span class="line">    url=<span class="string">&#x27;https://editst.com&#x27;</span>,</span><br><span class="line">    description=<span class="string">&#x27;Example Python Package&#x27;</span>,</span><br><span class="line">    long_description=<span class="string">r&#x27;**Example Python Package**&#x27;</span>,</span><br><span class="line">    long_description_content_type=<span class="string">&#x27;text/markdown&#x27;</span>,</span><br><span class="line">    packages=[<span class="string">&#x27;example&#x27;</span>],</span><br><span class="line">    entry_points=&#123;</span><br><span class="line">    <span class="string">&#x27;console_scripts&#x27;</span>: [<span class="string">&#x27;example=example:main&#x27;</span>],</span><br><span class="line">    &#125;,</span><br><span class="line">    install_requires=[],</span><br><span class="line">    classifiers=[</span><br><span class="line">    <span class="string">&#x27;License :: OSI Approved :: MIT License&#x27;</span>,</span><br><span class="line"></span><br><span class="line">    <span class="string">&#x27;Programming Language :: Python :: 3.6&#x27;</span>,</span><br><span class="line">    <span class="string">&#x27;Programming Language :: Python :: 3.7&#x27;</span>,</span><br><span class="line">    <span class="string">&#x27;Programming Language :: Python :: 3.8&#x27;</span>,</span><br><span class="line">    <span class="string">&#x27;Programming Language :: Python :: 3.9&#x27;</span>,</span><br><span class="line">    ],</span><br><span class="line">)</span><br></pre></td></tr></table></figure><p>需要注意的是其中的 <code>entry_points</code>，这个是用来在命令行中执行脚本的，这里我们只需要添加一个 <code>example</code> 即可。安装之后就可以直接在命令行运行 <code>example</code>，就是执行 <code>example.main()</code> 函数。</p><p>其中的 <code>classifiers</code> 可以设置包的类别，可以参考<a href="https://pypi.org/classifiers/">这里</a>，比较常用的是指定开源协议和适用的 python 版本。</p><h2 id="打包上传">打包上传</h2><p>首先需要安装打包和上传所需的工具。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">python -m pip install twine wheel setuptools</span><br></pre></td></tr></table></figure><p>之后打包上传即可。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">python setup.py sdist bdist_wheel</span><br><span class="line">python -m twine upload dist/*</span><br></pre></td></tr></table></figure><p>之后就可以在 PyPi 上搜索到我们的包了。</p>]]>
    </content>
    <id>https://editst.com/2021/python-package-to-pypi/</id>
    <link href="https://editst.com/2021/python-package-to-pypi/"/>
    <published>2021-12-14T09:47:25.000Z</published>
    <summary>
      <![CDATA[<p>前段时间为了方便预定学校的羽毛球场，写了一个简单的脚本来自动提交请求。为了方便分发给别人使用，同时保证相对匿名，想了许多方法。最开始专门新建了一个 GitHub 账号，使用匿名 Gist 发布代码。后来发现国内连通性太差，同时更新也不是怎么方便，于是研究了一下如何打包发布到 PyPi，可以更简单地安装和使用。</p>]]>
    </summary>
    <title>如何打包 Python package 并发布到 PyPi</title>
    <updated>2022-01-03T13:31:25.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="游记" scheme="https://editst.com/categories/%E6%B8%B8%E8%AE%B0/"/>
    <category term="上海" scheme="https://editst.com/tags/%E4%B8%8A%E6%B5%B7/"/>
    <category term="美术馆" scheme="https://editst.com/tags/%E7%BE%8E%E6%9C%AF%E9%A6%86/"/>
    <content>
      <![CDATA[<p>看到低价的机票，来了一次说走就走的上海之旅，以看展为主，还见到了几位好友，十分满足！</p><span id="more"></span><h2 id="浦东美术馆">浦东美术馆</h2><p><img src="MAP11.webp" alt="各种角度的东方明珠"></p><p>首先是新开的浦东美术馆，开幕大展包括光：泰特美术馆珍藏展（图1-6），蔡国强：远行与归来（图7-9），胡安·米罗：女人·小鸟·星星（图10）。作为最新的美术馆，MAP位置极佳，也有不少体现出对参观者照顾的小细节，包括每个展的导览册，展开后背面是一整张大幅海报，十分值得收藏。</p><p><img src="MAP01.webp" alt="奥菲莉娅"></p><p><img src="MAP02.webp" alt="光"></p><p><img src="MAP03.webp" alt="光"></p><p><img src="MAP04.webp" alt="光"></p><p><img src="MAP05.webp" alt="光"></p><p><img src="MAP06.webp" alt="光"></p><p><img src="MAP07.webp" alt="远行与归来"></p><p><img src="MAP08.webp" alt="远行与归来"></p><p><img src="MAP09.webp" alt="与未知的相遇"></p><p><img src="MAP10.webp" alt="女人·小鸟·星星"></p><p>浦东美术馆里逛了六个小时，意犹未尽，要不是实在体力不支，还想再仔细的看过每个展品。</p><p>强烈建议周五前往，门票价格便宜，人也不多，还开放到晚上九点，可以到顶层和镜厅欣赏美丽的夜景，仅此一家的角度哦。</p><p>还是要碎碎念一下，展览的许多详细讲解只能扫微信那个见了鬼的封闭的小程序码，不仅卡顿还疯狂掉电，对非大陆游客也极度不友好。以及MAP的纪念品价格都好高，还没有明信片，最后啥都没买，有些遗憾。</p><p>最后摘抄一下MAP对各个展览的介绍。</p><blockquote><p>图1为单独展出的奥菲莉娅，2-5的展品跨度200余年，大致以时间为框架，以各个时期的代表作和艺术家为重点，阐释“光”在艺术创作中演变。</p><p>图7-8中蔡国强以东方精神为镜，回溯、切磋少年时代钻研的西方艺术史经典，更以此求索绘画在当代的难题。图9中艺术家亦特别为中央大厅创作大型奇观装置《与未知的相遇》，呼应“远行”主题，也对话他的宇宙故乡。</p><p>图10中胡安·米罗系统性地缩小了所使用颜色的范围，只用基础的几个颜色，并建立起了由一系列术语组成的形式词汇表：人物、女人、鸟、月亮、太阳、星星、星座、逃离之梯——这些主题指涉出更为广泛的概念，诸如大地和天空，以及两者之间的联系，和一种理想和谐的可能性。</p></blockquote><h2 id="上海当代艺术博物馆">上海当代艺术博物馆</h2><p>第二天去了位于上海当代艺术博物馆的树，树（图1-3）和丁丁与埃尔热（图4）两个展览。</p><p><img src="PSA01.webp" alt="树，树"></p><p><img src="PSA02.webp" alt="树，树"></p><p><img src="PSA03.webp" alt="树，树"></p><p><img src="PSA04.webp" alt="丁丁与埃尔热"></p><p>上次来这里是看了19年的上海双年展，作为以当代艺术命名的博物馆，总感觉欣赏门槛高一些，好在这次有树，树极其详细和优秀的讲解（<a href="https://podcasts.apple.com/cn/podcast/%E5%8D%9A%E7%89%A9%E5%BF%97/id1030448996?i=1000531368962">博物志播客195期</a>，可以通过章节功能按节收听）。</p><p>丁丁与埃尔热展览用倒叙的陈列展现了埃尔热与丁丁共度的一生，还有丁丁历险记的动画片可以看哦。许多家长带着孩子来看的，不过我童年时与这部作品无缘，因此没有特别强的代入感。</p><h2 id="吃吃喝喝">吃吃喝喝</h2><p>除了为各大展览贡献门票，还与朋友们约了几次饭，给每一位最真挚的祝福，真心羡慕在上海的诸位。特别感谢百忙中抽时间带我逛上海的毛毛，愿你永远开心健康，下次一起看话剧啊。</p><p><img src="food.webp" alt="吃吃吃"></p><p>此外在上海这几天为咖啡业的发展略尽绵力，尝试了manner，seesaw和Peet’s，个人感觉manner各方面均更好。上海不愧是全球咖啡馆密度最高的城市，下次来多尝试几家独立（且不太贵的）咖啡店。</p><p>凌晨坐在浦东机场，心中满是不舍。与上海一别，再见不知何时，三天太短，有好多展览错过就可能是永远了，有不少店收藏了没机会去，等有机会（钱），一定还会再来的！</p>]]>
    </content>
    <id>https://editst.com/2021/shanghai-journey/</id>
    <link href="https://editst.com/2021/shanghai-journey/"/>
    <published>2021-09-14T02:59:16.000Z</published>
    <summary>
      <![CDATA[<p>看到低价的机票，来了一次说走就走的上海之旅，以看展为主，还见到了几位好友，十分满足！</p>]]>
    </summary>
    <title>上海看展小记</title>
    <updated>2021-09-19T08:00:16.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="游记" scheme="https://editst.com/categories/%E6%B8%B8%E8%AE%B0/"/>
    <category term="Ingress" scheme="https://editst.com/tags/Ingress/"/>
    <category term="澳门" scheme="https://editst.com/tags/%E6%BE%B3%E9%97%A8/"/>
    <content>
      <![CDATA[<p>趁着在学校做的核酸检测还在有效期，去澳门玩了三天。原本十分担心南京疫情导致无法成行，好在运气不错，一切顺利地玩了三天，还赶上了<a href="https://www.artmacao.mo/2021/gb">艺文荟澳：澳门国际艺术双年展</a>和<a href="https://zh.wikipedia.org/wiki/%E6%9D%B1%E6%9C%9B%E6%B4%8B%E7%87%88%E5%A1%94">东望洋灯塔</a>开放，可以说是收获满满的旅行。如果要说有什么遗憾的话，可能就是<s>因为太穷了</s>没有去“娱乐场”体验一下。</p><p>对澳门最深的印象，可能就是小了。之前就听闻澳门一天就能逛完，实际上<a href="https://zh.wikipedia.org/zh-cn/%E6%BE%B3%E9%96%80%E6%AD%B7%E5%8F%B2%E5%9F%8E%E5%8D%80">澳门历史城区</a>完全可以在一天的时间里逛一圈，傍晚还可以再去氹仔的豪华娱乐场里吹一下空调，当然这样也会错过不少值得深入了解的部分。</p><p>除了澳门的小，最深的可能就是炎热的天气给我造成的伤害了。澳门历史城区整个作为联合国文化遗产，是由22座位于澳门半岛区域的建筑物和相邻的8块前地所组成、以旧城区为核心的历史街区，最好的游览方法就是步行走一遍。在三伏天的烈日和高温下，即使站着不动都挥汗如雨，更不用说还要沿着狭窄起伏的小路步行。</p><p>现在的澳门游客相对而言仍然很少，特别是周一的时候许多教堂只有我一人，可以尽情欣赏。下面按时间简单总结一下这三天的感受，以及一些去澳门的经验。</p><h2 id="TL-DR">TL; DR</h2><p>推荐景点：<a href="http://www.mam.gov.mo/s/index">艺术博物馆</a>，<a href="https://www.marine.gov.mo/subpage.aspx?a_id=1431489058">海事博物馆</a>，<a href="https://www.macaotourism.gov.mo/zh-hans/sightseeing/fortresses/guia-fortress-including-guia-chapel-and-lighthouse">东望洋炮台</a>，<a href="https://www.macaotourism.gov.mo/zh-hans/sightseeing/churches/st-josephs-seminary-and-church">圣若瑟修院大楼及圣堂</a>，官也街</p><p>推荐饮食：安德鲁饼店，<a href="https://laikei-icecream.com">礼记雪糕</a>，南屏雅敘，维记咖啡</p><p>PS：仅列出本人去过的地点，还有许多未能前往</p><span id="more"></span><h2 id="Day1：博物馆和灯塔">Day1：博物馆和灯塔</h2><h3 id="澳门博物馆">澳门博物馆</h3><p>在规划行程的时候看到每年七月的周末可以东望洋灯塔参观，刚好我又是计划周日去澳门，因此特别在今天的行程里添加了灯塔。由于周一博物馆都不开放，于是把澳门博物馆和澳门艺术博物馆也放在了今天。</p><p>过关比想象的要快得多，提前准备好通关凭证扫码通过，然后就是两边各过一次自助机。注意目前澳门几乎处处都需要检查澳门健康码，建议申请好后截图，通常有效期为当天。放下行李后先去了<a href="https://www.macaumuseum.gov.mo/zh-hans">澳门博物馆</a>，由于导航的原因，我是爬到大炮台山顶后进入的，差点热死。建议<strong>由大三巴牌坊右转，坐电梯上去</strong>。</p><p>进门不需要买票，看展览的话才要买，门票15，注意<strong>只收现金</strong>。常设展多是复制品和模型，设计为面向澳门本地居民介绍世界简史和澳门历史，个人感觉<strong>游客没必要看</strong>，没有什么意义，澳门的历史更多体现在历史城区的各个建筑中。</p><p>出来后在大三巴牌坊拍了几张游客照，还去了后面的<a href="https://www.macaumuseum.gov.mo/zh-hans/visit/museum-sacred-art-crypt">天主教艺术博物馆</a>，有好多天主教圣物，对信众而言应该十分值得参观。</p><h3 id="东望洋炮台">东望洋炮台</h3><p>之后就去了东望洋炮台，又是导航的原因，步行爬到了山顶，在午后高温下运动差点休克。建议<strong>导航至二龙喉公园坐缆车上山</strong>。</p><p><img src="guia-lighthouse-light.webp" alt="东望洋灯塔射灯"></p><p>这次幸运地碰上了东望洋灯塔的开放日，这座有一百多年历史的灯塔平时并不对公众开放。塔内共三层，展柜摆放了灯塔旧时使用的器具，顶部是全球仅有的两盏水晶射灯，目前仍在使用。灯塔旁是一座不大的教堂，可以进入看一下。</p><p><img src="guia-macau.jpg" alt="灯塔俯瞰澳门"></p><h3 id="澳门艺术博物馆">澳门艺术博物馆</h3><p>下山后步行前往艺术博物馆，路上突然下雨，在中华民族雕塑园躲避，里面还有一个小型展览馆，展示了少数民族的服饰、乐器、织物等，不妨一看。</p><p>艺术博物馆目前的两个展览是<a href="https://www.artmacao.mo/2021/gb/mainExhibition">艺文荟澳的主场展</a>与<a href="http://www.mam.gov.mo/s/exhibition/1/detail/2881df15-ae2e-4199-978a-be4965317ad1">豫遊之道：艺博馆馆藏展</a>。整个馆人很少，可以安静地吹着空调看展。其中还有几个蛮有意思的互动展品，可以玩一下。具体的展品可以去网站欣赏，这里就不放照片了。进门有一组地球仪的展览，可以在<a href="https://world-processor.com/matrix">这里</a>看到具体的介绍。</p><p>晚上由于上网卡流量用尽断网，没再去氹仔岛，在酒店泡澡睡觉了。</p><h2 id="Day2-澳门历史城区">Day2: 澳门历史城区</h2><p>今天沿着 Ingress 拼图<a href="https://specops.quest/banner/banner-eeebe8c0/missions">漫游澳门历史城区</a>走了一天，基本上把各个教堂都逛了一遍。其中个人觉得最值得去的是圣若瑟修院大楼及圣堂，大楼边上有一个专门的藏珍馆，可以看到这座修院的历史贡献。从圣若瑟修院出来对面就是哪吒古庙，两种宗教在这里神奇地融合在了一起，或许这就是澳门的魅力吧。</p><p>下午去了妈阁庙旁边的海事博物馆，门票10（周日半价），比昨天的澳门博物馆有意思得多。里面从澳门早期的渔民文化开始，介绍了全球各个地区的航海技术演变，从原始的木筏到帆船，再到现代船只，各个模型十分精美。里面还有一个小型水族馆，不少好看的鱼类，还有许多贝壳展览，可惜标注的都是英文。</p><p>今天去的各个教堂基本都只有我自己，如果不是天气<strong>过于炎热</strong>，就是非常开心的一天了。</p><h2 id="Day3：氹仔岛">Day3：氹仔岛</h2><p>上午做了一下 Ingress 拼图<a href="https://specops.quest/banner/banner-1b6aa1ba/missions">印象澳门-大三巴牌坊</a>，得到的教训是千万不要在这个时候的白天做这种任务！同时这个拼图的第11个不知道为什么会有两个，千万不要做重复了！</p><p>下午去了氹仔岛的<a href="https://www.macaotourism.gov.mo/zh-hans/sightseeing/museums-and-galleries/taipa-houses">龙环葡韵住宅博物馆</a>，由四栋别墅组成，目前的展览是艺文荟澳的分展，<strong>并没有去的必要</strong>。</p><p>之后去澳门银河的 Apple Store 更换了 Airpods Pro，服务态度不错。等待的时候去看了在银河艺萃的<a href="https://www.artmacao.mo/2021/GB/event/8806">艺文荟澳分展：传情·传承</a>，共计11个漫画风格的金属艺术作品，还有工作人员讲解，趣味与艺术兼得。</p><p><img src="a-ma-temple.webp" alt="传情·传承：妈阁庙"></p><p>休息了一下后去了官也街，各家店人都不算多，买了几个安德鲁的蛋挞，味道确实不错。最后去威尼斯人吹空调休息了一下，整个商场十分巨大，布局复杂。里面的“运河”正在整修，没有游船。威尼斯人和旁边的几家商场连在一起，不用出门都可直接到达。</p><h2 id="经验总结">经验总结</h2><h3 id="前期准备">前期准备</h3><h4 id="签注">签注</h4><p>目前各地签注均需<strong>本人亲自人工办理</strong>，办理时间较长，建议提前准备。同时非本省办理签注需要居住证，建议会户籍所在地办理。</p><h4 id="上网">上网</h4><p>澳门许多景点和酒店提供免费的 wifi，具体可以在<a href="https://www.freewifi.mo/gb">这里</a>查阅，无需验证码即可免费使用45分钟。不过为了方便起见，还是推荐购买流量卡，建议提前咨询商家<strong>每日流量限额</strong>，避免断网无法使用。</p><h4 id="现金">现金</h4><p>澳门官方货币是澳门币（葡币），同时港币也基本通用（1：1）。汇率最优的兑换方法是到银行预约后兑换，也可以到拱北的各个货币兑换点兑换，注意汇率和手续费即可，或者到澳门后兑换。建议兑换<strong>几百葡币</strong>即可，目前大部分商家使用的 pos 机均支持支付宝、微信、银联等支付，无需现金，方便快捷。</p><h4 id="信息查询">信息查询</h4><p>可在以下网站查询各种信息，规划行程。推荐关注澳门旅游局公众号，可以查到各种信息。</p><p><a href="http://www.museums.gov.mo/chis/museums.html">澳门的博物馆</a></p><p><a href="https://www.macaotourism.gov.mo">澳门旅游局</a></p><p><a href="https://www.wh.mo/gb">澳门世界遗产</a></p><p><a href="https://www.icm.gov.mo/gb">澳门文化局</a></p><h3 id="住宿">住宿</h3><p>可关注澳门旅游局微信公众号，可以抽取酒店5折券，优惠后价格十分划算。</p><p>入境澳门时会自动打印一张入境申报表，需要妥善保管，办理住宿时需要检查。</p><h3 id="交通">交通</h3><p>公交车支持交通联合卡使用，统一价格6 mop，刷澳门通半价，同时有换乘优惠。可在711/ok便利店等地方购买澳门通，卡费30，购买时最低充值100，<strong>只能现金</strong>，购买后单次充值最低50，短期旅游无需购买。</p><p>在关闸有发财车前往各大娱乐场，可以免费搭乘，也可搭车返回关闸。</p><h3 id="其他信息">其他信息</h3><p>到澳门后支付宝可以领取无门槛红包，支付时自动抵扣。首个红包5 mop，支付后可再次领取，共计约10 mop。微信也有折扣券，可以搜索小程序境外游礼包领取，不过有使用门槛。</p><p>iPhone 使用谷歌地图在澳门会有位置偏移（反向火星坐标），建议使用苹果自带地图或高德地图。</p>]]>
    </content>
    <id>https://editst.com/2021/macau-journey/</id>
    <link href="https://editst.com/2021/macau-journey/"/>
    <published>2021-07-28T10:25:00.000Z</published>
    <summary>
      <![CDATA[<p>趁着在学校做的核酸检测还在有效期，去澳门玩了三天。原本十分担心南京疫情导致无法成行，好在运气不错，一切顺利地玩了三天，还赶上了<a href="https://www.artmacao.mo/2021/gb">艺文荟澳：澳门国际艺术双年展</a>和<a href="https://zh.wikipedia.org/wiki/%E6%9D%B1%E6%9C%9B%E6%B4%8B%E7%87%88%E5%A1%94">东望洋灯塔</a>开放，可以说是收获满满的旅行。如果要说有什么遗憾的话，可能就是<s>因为太穷了</s>没有去“娱乐场”体验一下。</p>
<p>对澳门最深的印象，可能就是小了。之前就听闻澳门一天就能逛完，实际上<a href="https://zh.wikipedia.org/zh-cn/%E6%BE%B3%E9%96%80%E6%AD%B7%E5%8F%B2%E5%9F%8E%E5%8D%80">澳门历史城区</a>完全可以在一天的时间里逛一圈，傍晚还可以再去氹仔的豪华娱乐场里吹一下空调，当然这样也会错过不少值得深入了解的部分。</p>
<p>除了澳门的小，最深的可能就是炎热的天气给我造成的伤害了。澳门历史城区整个作为联合国文化遗产，是由22座位于澳门半岛区域的建筑物和相邻的8块前地所组成、以旧城区为核心的历史街区，最好的游览方法就是步行走一遍。在三伏天的烈日和高温下，即使站着不动都挥汗如雨，更不用说还要沿着狭窄起伏的小路步行。</p>
<p>现在的澳门游客相对而言仍然很少，特别是周一的时候许多教堂只有我一人，可以尽情欣赏。下面按时间简单总结一下这三天的感受，以及一些去澳门的经验。</p>
<h2 id="TL-DR">TL; DR</h2>
<p>推荐景点：<a href="http://www.mam.gov.mo/s/index">艺术博物馆</a>，<a href="https://www.marine.gov.mo/subpage.aspx?a_id=1431489058">海事博物馆</a>，<a href="https://www.macaotourism.gov.mo/zh-hans/sightseeing/fortresses/guia-fortress-including-guia-chapel-and-lighthouse">东望洋炮台</a>，<a href="https://www.macaotourism.gov.mo/zh-hans/sightseeing/churches/st-josephs-seminary-and-church">圣若瑟修院大楼及圣堂</a>，官也街</p>
<p>推荐饮食：安德鲁饼店，<a href="https://laikei-icecream.com">礼记雪糕</a>，南屏雅敘，维记咖啡</p>
<p>PS：仅列出本人去过的地点，还有许多未能前往</p>]]>
    </summary>
    <title>澳门三日游</title>
    <updated>2021-07-28T16:00:21.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="转载" scheme="https://editst.com/categories/%E8%BD%AC%E8%BD%BD/"/>
    <category term="现代艺术" scheme="https://editst.com/tags/%E7%8E%B0%E4%BB%A3%E8%89%BA%E6%9C%AF/"/>
    <content>
      <![CDATA[<p>来自<a href="https://book.douban.com/review/8930999/">豆瓣网友</a>，原文在有道云笔记，为方便浏览转载至此。</p><p>现代艺术 150 年全书提及的作品图集，按书本出现顺序，来源为 Wiki, MoMA 和泰特的官网等，大部分附有链接，在原文基础增加了部分作品，替换了部分图片。所有图片已经压缩，如需高清图片可以前往<a href="https://github.com/Editst/150-Years-of-Modern-Art"> GitHub 存储库</a>查看。</p><span id="more"></span><h2 id="导论：你在看什么">导论：你在看什么</h2><h3 id="1-Equivalent-VIII-等价物-8-1966-（Carl-Andre-卡尔·安德烈）">1. Equivalent VIII 等价物 8 1966 （Carl Andre, 卡尔·安德烈）</h3><p><a href="http://www.tate.org.uk/art/artworks/andre-equivalent-viii-t01534">作品链接</a></p><p><img src="1B1EDB90AEE34DA29470B3265CFA5C73.png.webp" alt=""></p><h3 id="2-Puppy-小狗-1992-（Jeff-Koons-杰夫·昆斯）">2. Puppy 小狗 1992 （Jeff Koons, 杰夫·昆斯）</h3><p><a href="https://www.guggenheim.org/artwork/48">作品链接</a></p><p><img src="C887C52D7ABB46C3B1103A7CB597F761.png.webp" alt=""></p><h2 id="1-泉，1917">1 泉，1917</h2><h3 id="3-Fountain-泉-1917（Marcel-Duchamp-马塞尔·杜尚）">3. Fountain 泉 1917（Marcel Duchamp, 马塞尔·杜尚）</h3><p><a href="https://en.wikipedia.org/wiki/Fountain_(Duchamp)">作品链接</a></p><p><img src="424E89FF9AF34168941BA09A62B1F3A3.png.webp" alt=""></p><h2 id="2-前印象派：走向真实，1820—1870">2 前印象派：走向真实，1820—1870</h2><h3 id="4-Reflections-of-Clouds-on-the-Water-Lily-Pond-睡莲-1920-（Claude-Monet-克劳德·莫奈）">4. Reflections of Clouds on the Water-Lily Pond 睡莲 1920 （Claude Monet, 克劳德·莫奈）</h3><p><a href="https://en.wikipedia.org/wiki/Water_Lilies_(Monet_series)">作品链接</a></p><p><img src="Claude_Monet_-_The_Water_Lilies_-_The_Clouds_-_Google_Art_Project.jpg.webp" alt=""></p><h3 id="5-The-Raft-of-the-Medusa-美杜莎之筏-1818-1819（Theodore-Gericault-泰奥多尔·席里柯）">5. The Raft of the Medusa 美杜莎之筏 1818-1819（Théodore Géricault, 泰奥多尔·席里柯）</h3><p><a href="https://en.wikipedia.org/wiki/The_Raft_of_the_Medusa">作品链接</a></p><p><img src="935D4FE186E34100AB2D755453B84F7F.png.webp" alt=""></p><h3 id="6-Liberty-Leading-the-People-自由引导人民-1830-（Eugene-Delacroix-欧仁·德拉克罗瓦）">6. Liberty Leading the People 自由引导人民 1830 （Eugène Delacroix, 欧仁·德拉克罗瓦）</h3><p><a href="https://en.wikipedia.org/wiki/Liberty_Leading_the_People">作品链接</a></p><p><img src="Eug%C3%A8ne_Delacroix_-_Le_28_Juillet._La_Libert%C3%A9_guidant_le_peuple.jpg.webp" alt=""></p><h3 id="7-L’Origine-du-monde-The-Origin-of-the-World-世界的起源-1866-（Gustave-Courbet-古斯塔夫·库尔贝-）">7. L’Origine du monde (The Origin of the World) 世界的起源 1866 （Gustave Courbet, 古斯塔夫·库尔贝 ）</h3><p><a href="https://en.wikipedia.org/wiki/L%27Origine_du_monde">作品链接</a></p><p><img src="0669D4B5AD424ACBB98540A23F22B2D3.png.webp" alt=""></p><h3 id="8-The-Absinthe-Drinker-Le-Buveur-d’absinthe-喝苦艾酒的人-1859-（Edouard-Manet-爱德华·马奈）">8. The Absinthe Drinker (Le Buveur d’absinthe) 喝苦艾酒的人 1859 （Édouard Manet, 爱德华·马奈）</h3><p><a href="https://en.wikipedia.org/wiki/The_Absinthe_Drinker_(Manet_painting)">作品链接</a></p><p><img src="B9CD46A0D862461E9876026C00AD85FD.png.webp" alt=""></p><h3 id="9-Le-Dejeuner-sur-l’herbe-The-Luncheon-on-the-Grass-草地上的午餐-1863-（Edouard-Manet-爱德华·马奈）">9. Le Déjeuner sur l’herbe (The Luncheon on the Grass) 草地上的午餐 1863 （Édouard Manet, 爱德华·马奈）</h3><p><a href="https://en.wikipedia.org/wiki/Le_D%C3%A9jeuner_sur_l%E2%80%99herbe">作品链接</a></p><p><img src="B7F319EBE2654717B80B96512E18D9A0.png.webp" alt=""></p><h3 id="10-The-Judgement-of-Paris-帕里斯的审判-（Raffaello-Sanzio-da-Urbino-拉斐尔·圣齐奥）">10. The Judgement of Paris 帕里斯的审判 （Raffaello Sanzio da Urbino, 拉斐尔·圣齐奥）</h3><p><img src="Raffaello_Sanzio_-_The_Judgement_of_paris.jpg.webp" alt=""></p><h3 id="11-Pastoral-Concert-田园音乐会-1509-（Tiziano-Vecelli-蒂齐亚诺·韦切利奥（提香））">11. Pastoral Concert 田园音乐会 1509 （Tiziano Vecelli, 蒂齐亚诺·韦切利奥（提香））</h3><p><a href="https://en.wikipedia.org/wiki/Pastoral_Concert">作品链接</a></p><p><img src="Le_Concert_champ%C3%AAtre,_by_Titian,_from_C2RMF_retouchedFXD.jpg.webp" alt=""></p><h3 id="12-The-Tempset-暴风雨-1508（Giorgione-乔尔乔内）">12. The Tempset 暴风雨 1508（Giorgione, 乔尔乔内）</h3><p><a href="https://en.wikipedia.org/wiki/The_Tempest_(Giorgione)">作品链接</a></p><p><img src="Giorgione_019.jpg.webp" alt=""></p><h3 id="13-Olympia-奥林匹亚-1863（Edouard-Manet-爱德华·马奈）">13. Olympia 奥林匹亚 1863（Édouard Manet, 爱德华·马奈）</h3><p><a href="https://en.wikipedia.org/wiki/Olympia_(Manet)">作品链接</a></p><p><img src="5DDCFF55D0914FAC9A52A3839F05723B.png.webp" alt=""></p><h3 id="14-Venus-of-Urbino-乌尔比诺的维纳斯-1534-（Tiziano-Vecelli-蒂齐亚诺·韦切利奥（提香））">14. Venus of Urbino 乌尔比诺的维纳斯 1534 （Tiziano Vecelli, 蒂齐亚诺·韦切利奥（提香））</h3><p><a href="https://en.wikipedia.org/wiki/Venus_of_Urbino">作品链接</a></p><p><img src="Tiziano_-_Venere_di_Urbino_-_Google_Art_Project.jpg.webp" alt=""></p><h2 id="3-印象派：现代生活的画家，1870—1890">3 印象派：现代生活的画家，1870—1890</h2><h3 id="15-Impression-Sunrise-Impression-soleil-levant-印象，日出-1872（Claude-Monet-克劳德·莫奈）">15. Impression, Sunrise (Impression, soleil levant) 印象，日出 1872（Claude Monet 克劳德·莫奈）</h3><p><a href="https://en.wikipedia.org/wiki/Impression,_Sunrise">作品链接</a></p><p><img src="B597DD2C28214100BC74605424B53304.png.webp" alt=""></p><h3 id="16-Stacks-of-Wheat-End-of-Summer-干草堆（夏末）-1890-1891（Claude-Monet-克劳德·莫奈）">16. Stacks of Wheat (End of Summer) 干草堆（夏末） 1890-1891（Claude Monet 克劳德·莫奈）</h3><p><a href="https://en.wikipedia.org/wiki/Haystacks_(Monet_series)">作品链接</a></p><p><img src="Wheatstacks_End_of_Summer.jpg.webp" alt=""></p><h3 id="17-A-Modern-Olympia-现代奥林匹亚-1870（Paul-Cezanne-保罗·塞尚）">17. A Modern Olympia 现代奥林匹亚 1870（Paul Cézanne, 保罗·塞尚）</h3><p><a href="http://www.paulcezanne.org/a-modern-olympia.jsp#prettyPhoto">作品链接</a></p><p><img src="4C98ECABAA554D419E9EBB792ACBDF18.png.webp" alt=""></p><h3 id="18-Hoar-Frost-the-Old-Road-to-Ennery-白霜，通往埃纳里的老路-1873（Camille-Pissarro-卡米耶·毕沙罗）">18. Hoar Frost, the Old Road to Ennery 白霜，通往埃纳里的老路 1873（Camille Pissarro, 卡米耶·毕沙罗）</h3><p><a href="https://artbookannex.com/tag/ennery/">作品链接</a></p><p><img src="0601F33D633E487B95A38C88A7A5894A.png.webp" alt=""></p><h3 id="19-Bain-a-la-Grenouillere-青蛙塘-1869-（Claude-Monet-克劳德·莫奈）">19. Bain à la Grenouillère 青蛙塘 1869 （Claude Monet, 克劳德·莫奈）</h3><p><a href="https://en.wikipedia.org/wiki/Bain_%C3%A0_la_Grenouill%C3%A8re">作品链接</a></p><p><img src="14FAF363D5CA472BB2EE294D2C1720D2.png.webp" alt=""></p><h3 id="20-La-Grenouillere-青蛙塘-1869-（Pierre-Auguste-Renoir-皮埃尔-奥古斯特·雷诺阿）">20. La Grenouillère 青蛙塘 1869 （Pierre-Auguste Renoir, 皮埃尔-奥古斯特·雷诺阿）</h3><p><a href="https://en.wikipedia.org/wiki/Pierre-Auguste_Renoir">作品链接</a></p><p><img src="Auguste_Renoir_-_La_Grenouill%C3%A8re_-_Google_Art_Project.jpg.webp" alt=""></p><h3 id="21-Rain-Steam-and-Speed-–-The-Great-Western-Railway-雨、蒸汽和速度-1844-J-M-W-Turner-J-M-W-特纳">21. Rain, Steam and Speed – The Great Western Railway 雨、蒸汽和速度 1844 (J. M. W. Turner, J.M.W 特纳)</h3><p><a href="https://en.wikipedia.org/wiki/Rain,_Steam_and_Speed_%E2%80%93_The_Great_Western_Railway">作品链接</a></p><p><img src="9DD0244891C443DB802094A09796F0D3.png.webp" alt=""></p><h3 id="22-The-Thames-below-Westminster-威斯敏斯特下的泰晤士河-1871-Claude-Monet-克劳德·莫奈">22. The Thames below Westminster 威斯敏斯特下的泰晤士河 1871 (Claude Monet, 克劳德·莫奈)</h3><p><a href="https://artuk.org/discover/artworks/the-thames-below-westminster-115865">作品链接</a></p><p><img src="The_Thames_below_Westminster.png.webp" alt=""></p><h3 id="23-神奈川沖浪裏-The-Great-Wave-off-Kanagawa-神奈川巨浪-1829-1833-葛飾北斎，Katsushika-Hokusai-葛饰北斋">23. 神奈川沖浪裏  The Great Wave off Kanagawa 神奈川巨浪 1829-1833 (葛飾北斎，Katsushika Hokusai, 葛饰北斋)</h3><p><a href="https://en.wikipedia.org/wiki/The_Great_Wave_off_Kanagawa">作品链接</a></p><p><img src="413FE42E75C440FCA3C5DC0B3A71EA9A.png.webp" alt=""></p><h3 id="24-大津駅-Station-of-Otsu-大津站-1840（安藤-広重-Ando-Hiroshige-安藤广重（后改名-歌川-広重-Utagawa-Hiroshige-歌川广重））">24. 大津駅 Station of Otsu 大津站 1840（安藤 広重, Ando Hiroshige, 安藤广重（后改名 歌川 広重, Utagawa Hiroshige, 歌川广重））</h3><p><a href="https://www.metmuseum.org/toah/works-of-art/JP804/">作品链接</a></p><p><img src="E00215996F6246FB98800821A8993E8A.png.webp" alt=""></p><h3 id="25-The-Dance-Class-La-Classe-de-Danse-舞蹈课-1874（Edgar-Degas-埃德加·德加）">25. The Dance Class (La Classe de Danse) 舞蹈课 1874（Edgar Degas, 埃德加·德加）</h3><p><a href="https://en.wikipedia.org/wiki/The_Ballet_Class_(Degas,_Mus%C3%A9e_d%27Orsay)">作品链接</a></p><p><img src="BED3663AF03D4BF4BE68A955DA6CEAEE.png.webp" alt=""></p><h3 id="26-A-Carriage-at-The-Races-赛马场上的马车-1870-（Edgar-Degas-埃德加·德加）">26. A Carriage at The Races 赛马场上的马车 1870 （Edgar Degas, 埃德加·德加）</h3><p><a href="https://www.wikiart.org/en/edgar-degas/a-carriage-at-the-races-1872">作品链接</a></p><p><img src="edgar-degas-at-the-races-in-the-countryside-google-art-project.jpg.webp" alt=""></p><h2 id="4-后印象派：拓展领域，1880—1906">4 后印象派：拓展领域，1880—1906</h2><h3 id="27-The-Potato-Eaters-吃土豆的人-1885（Vincent-Willem-van-Gogh-文森特·梵高）">27. The Potato Eaters 吃土豆的人 1885（Vincent Willem van Gogh, 文森特·梵高）</h3><p><a href="https://en.wikipedia.org/wiki/The_Potato_Eaters">作品链接</a></p><p><img src="Van-willem-vincent-gogh-die-kartoffelesser-03850.jpg.webp" alt=""></p><h3 id="28-The-Yellow-House-黄房子-1888-（Vincent-Willem-van-Gogh-文森特·梵高）">28. The Yellow House 黄房子 1888 （Vincent Willem van Gogh, 文森特·梵高）</h3><p><a href="https://en.wikipedia.org/wiki/The_Yellow_House">作品链接</a></p><p><img src="Vincent_van_Gogh_-_The_yellow_house.jpg.webp" alt=""></p><h3 id="29-Still-Life-With-a-Plate-of-Onions-静物：一盘洋葱-1889-（Vincent-Willem-van-Gogh-文森特·梵高）">29. Still Life With a Plate of Onions 静物：一盘洋葱 1889 （Vincent Willem van Gogh, 文森特·梵高）</h3><p><a href="https://commons.wikimedia.org/wiki/File:Still_life_with_a_plate_of_onions.jpg.webp">作品链接</a></p><p><img src="23F05B9093B84F16BB3F502681131B24.png.webp" alt=""></p><h3 id="30-The-Sower-播种者-1888（Vincent-Willem-van-Gogh-文森特·梵高）">30. The Sower 播种者 1888（Vincent Willem van Gogh, 文森特·梵高）</h3><p><a href="https://en.wikipedia.org/wiki/Vincent_van_Gogh#/media/File:The_Sower.jpg.webp">作品链接</a></p><p><img src="8B2CA4278CA643A78A8A704BFF3E3B68.png.webp" alt=""></p><h3 id="31-The-Night-Cafe-夜间咖啡馆-1888（Vincent-Willem-van-Gogh-文森特·梵高）">31. The Night Café 夜间咖啡馆 1888（Vincent Willem van Gogh, 文森特·梵高）</h3><p><a href="https://en.wikipedia.org/wiki/The_Night_Caf%C3%A9">作品链接</a></p><p><img src="F26D59354B56485C80221667B2C435A1.png.webp" alt=""></p><h3 id="32-Sunflowers-向日葵-1888（Vincent-Willem-van-Gogh-文森特·梵高）">32. Sunflowers 向日葵 1888（Vincent Willem van Gogh, 文森特·梵高）</h3><p><a href="https://en.wikipedia.org/wiki/Sunflowers_(Van_Gogh_series)">作品链接</a></p><p><img src="8006A4104C6F42EBB502911D460AFEEF.png.webp" alt=""></p><h3 id="33-Starry-Night-Over-the-Rhone-满天星斗下的罗纳河-1888-（Vincent-Willem-van-Gogh-文森特·梵高）">33. Starry Night Over the Rhône 满天星斗下的罗纳河 1888 （Vincent Willem van Gogh, 文森特·梵高）</h3><p><a href="https://en.wikipedia.org/wiki/Starry_Night_Over_the_Rh%C3%B4ne">作品链接</a></p><p><img src="0A64ED9657B94B3EB4461AC9B7443FA4.png.webp" alt=""></p><h3 id="34-Bedroom-in-Arles-寝室-1888（Vincent-Willem-van-Gogh-文森特·梵高）">34. Bedroom in Arles 寝室 1888（Vincent Willem van Gogh, 文森特·梵高）</h3><p><a href="https://en.wikipedia.org/wiki/Bedroom_in_Arles">作品链接</a></p><p><img src="63414E1516C444898F52405986D6B83C.png.webp" alt=""></p><h3 id="35-The-Scream-呐喊-1893-（Edvard-Munch-爱德华·蒙克）">35. The Scream 呐喊 1893 （Edvard Munch, 爱德华·蒙克）</h3><p><a href="https://en.wikipedia.org/wiki/The_Scream">作品链接</a></p><p><img src="B7E1AFC1BFE24B049D10C30245530204.png.webp" alt=""></p><h3 id="36-Study-after-Velazquez’s-Portrait-of-Pope-Innocent-X-临摹委拉斯开兹的《教皇英诺森十世肖像》1953（Francis-Bacon-弗朗西斯·培根）">36. Study after Velázquez’s Portrait of Pope Innocent X 临摹委拉斯开兹的《教皇英诺森十世肖像》1953（Francis Bacon, 弗朗西斯·培根）</h3><p><a href="https://en.wikipedia.org/wiki/Study_after_Vel%C3%A1zquez%27s_Portrait_of_Pope_Innocent_X">作品链接</a></p><p><img src="4B57C76A6C93488BBAAA9AF8C7366340.png.webp" alt=""></p><h3 id="37-Homage-to-Van-Gogh-向梵高致敬-1960-（Francis-Bacon-弗朗西斯·培根）">37. Homage to Van Gogh 向梵高致敬 1960 （Francis Bacon, 弗朗西斯·培根）</h3><p><a href="https://www.artimage.org.uk/3087/francis-bacon/homage-to-van-gogh--1960">作品链接</a></p><p><img src="8657D2035D4048DDBD54B2CAD14C679B.png.webp" alt=""></p><h3 id="38-Painter-on-the-Road-to-Tarascon-destroyed-by-fire-in-the-Second-World-War-去往塔拉斯孔路上的画家-1888-（Vincent-Willem-van-Gogh-文森特·梵高）">38. Painter on the Road to Tarascon (destroyed by fire in the Second World War) 去往塔拉斯孔路上的画家 1888 （Vincent Willem van Gogh, 文森特·梵高）</h3><p><a href="https://en.wikipedia.org/wiki/Vincent_van_Gogh#/media/File:Vincent_Van_Gogh_0013.jpg.webp">作品链接</a></p><p><img src="2D8DFD94E11941DF851374D573DEB95B.png.webp" alt=""></p><h3 id="39-Vision-after-the-Sermon-Jacob-Wrestling-with-the-Angel-布道后的幻象（雅各与天使搏斗）-1888（Paul-Gauguin-保罗·高更）">39. Vision after the Sermon (Jacob Wrestling with the Angel) 布道后的幻象（雅各与天使搏斗） 1888（Paul Gauguin, 保罗·高更）</h3><p><a href="https://en.wikipedia.org/wiki/Vision_After_the_Sermon">作品链接</a></p><p><img src="6073D71E2CBD4C6DAA99619F8633AF0E.png.webp" alt=""></p><h3 id="40-No-te-aha-oe-riri-Why-Are-You-Angry-你为何生气-1896（Paul-Gauguin-保罗·高更）">40. No te aha oe riri (Why Are You Angry?), 你为何生气 1896（Paul Gauguin, 保罗·高更）</h3><p><a href="http://www.artic.edu/aic/collections/artwork/16496">作品链接</a></p><p><img src="3E1AD37F5D274BE491CD05C6179282BB.png.webp" alt=""></p><h3 id="41-Bathers-at-Asnieres-Une-Baignade-Asnieres-阿尼埃尔的浴场-1884（Georges-Seurat-乔治·修拉）">41. Bathers at Asnières (Une Baignade, Asnières)  阿尼埃尔的浴场 1884（Georges Seurat, 乔治·修拉）</h3><p><a href="https://en.wikipedia.org/wiki/Bathers_at_Asni%C3%A8res">作品链接</a></p><p><img src="CDE46BB4AE8C47A981170AD0E2627696.png.webp" alt=""></p><h3 id="42-A-Sunday-Afternoon-on-the-Island-of-La-Grande-Jatte-大碗岛的星期天下午-1884-1886（Georges-Seurat-乔治·修拉）">42. A Sunday Afternoon on the Island of La Grande Jatte 大碗岛的星期天下午 1884-1886（Georges Seurat, 乔治·修拉）</h3><p><a href="https://en.wikipedia.org/wiki/A_Sunday_Afternoon_on_the_Island_of_La_Grande_Jatte">作品链接</a></p><p><img src="1ACF5C2E761B4294A8D2CB5503DCE53C.png.webp" alt=""></p><h2 id="5-塞尚：吾人之父，1839—1906">5 塞尚：吾人之父，1839—1906</h2><h3 id="43-Still-Life-with-Apples-and-Peaches-有苹果和桃子的静物-1905（Paul-Cezanne-保罗·塞尚）">43. Still Life with Apples and Peaches 有苹果和桃子的静物 1905（Paul Cézanne, 保罗·塞尚）</h3><p><a href="https://www.nga.gov/Collection/art-object-page.45986.html">作品链接</a></p><p><img src="FE4B2DFFEA814CB8B42826012C136CC4.png.webp" alt=""></p><h3 id="44-Mont-Sainte-Victoire-with-Large-Pine-圣维克多山-1887-（Paul-Cezanne-保罗·塞尚）">44. Mont Sainte-Victoire with Large Pine 圣维克多山 1887 （Paul Cézanne, 保罗·塞尚）</h3><p><a href="https://en.wikipedia.org/wiki/Mont_Sainte-Victoire_with_Large_Pine">作品链接</a></p><p><img src="2ABD1F5C31B248B08A0E4BA473D8997E.png.webp" alt=""></p><h2 id="6-原始主义，1880—1930-野兽派，1905—1910：原始的呐喊">6 原始主义，1880—1930/野兽派，1905—1910：原始的呐喊</h2><h3 id="45-The-Kiss-吻-1907-1908-（Gustav-Klimt-古斯塔夫·克里姆特）">45. The Kiss 吻 1907-1908 （Gustav Klimt, 古斯塔夫·克里姆特）</h3><p><a href="https://en.wikipedia.org/wiki/The_Kiss_(Klimt)">作品链接</a></p><p><img src="0D4756AC7E804298BDC05405188F50E5.png.webp" alt=""></p><h3 id="46-Boats-in-the-Harbour-at-Collioure-科利乌尔港的船-1905-（Andre-Derain-安德烈·德兰）">46. Boats in the Harbour at Collioure 科利乌尔港的船 1905 （André Derain, 安德烈·德兰）</h3><p><a href="https://www.aaronartprints.org/derain-boatsintheharbour.php">作品链接</a></p><p><img src="5418491054594CAD9AC7169E6FC86F06.png.webp" alt=""></p><h3 id="47-Restaurant-de-la-Machine-at-Bougival-布吉瓦尔的餐馆-1905（Maurice-de-Vlaminck-莫里斯·德·弗拉芒克）">47. Restaurant de la Machine at Bougival 布吉瓦尔的餐馆 1905（Maurice de Vlaminck, 莫里斯·德·弗拉芒克）</h3><p><a href="https://www.musee-orsay.fr/fr/oeuvres/restaurant-de-la-machine-bougival-8048">作品链接</a></p><p><img src="EDFF858C032844A7B6D7F0E7A2612117.png.webp" alt=""></p><h3 id="48-Woman-with-a-Hat-戴帽子的妇人-1905-（Henri-Matisse-亨利·马蒂斯）">48. Woman with a Hat 戴帽子的妇人 1905 （Henri Matisse, 亨利·马蒂斯）</h3><p><a href="https://en.wikipedia.org/wiki/Woman_with_a_Hat">作品链接</a></p><p><img src="E844C058AF9B462BAA024280C008AB69.png.webp" alt=""></p><h3 id="49-Le-bonheur-de-vivre-The-Joy-of-Life-生之欢乐-1905-1906-（Henri-Matisse-亨利·马蒂斯）">49. Le bonheur de vivre (The Joy of Life) 生之欢乐 1905-1906 （Henri Matisse, 亨利·马蒂斯）</h3><p><a href="https://en.wikipedia.org/wiki/Le_bonheur_de_vivre">作品链接</a></p><p><img src="E683E5B6BFFF40429CD1A4F2CBF09F12.png.webp" alt=""></p><h3 id="50-Reciproco-Amore-互爱-1589-1595（Agostino-Carracci-阿戈斯蒂诺·卡拉奇）">50. Reciproco Amore 互爱 1589-1595（Agostino Carracci, 阿戈斯蒂诺·卡拉奇）</h3><p><img src="Agostino_Carracci_-_Reciproco_Amore_or_Love_in_the_Golden_Age.jpg.webp" alt=""></p><h3 id="51-Portrait-of-Gertrude-Stein-格特鲁德·斯泰因肖像-1905-1906-（Pablo-Picasso-巴勃罗·毕加索）">51. Portrait of Gertrude Stein 格特鲁德·斯泰因肖像 1905-1906 （Pablo Picasso, 巴勃罗·毕加索）</h3><p><a href="https://en.wikipedia.org/wiki/Portrait_of_Gertrude_Stein">作品链接</a></p><p><img src="832B8B982F35401AAB1EF14FF2ACE628.png.webp" alt=""></p><h3 id="52-Les-Demoiselles-d’Avignon-The-Young-Ladies-of-Avignon-and-originally-titled-The-Brothel-of-Avignon-亚维农少女-1907-（Pablo-Picasso-巴勃罗·毕加索）">52. Les Demoiselles d’Avignon (The Young Ladies of Avignon, and originally titled The Brothel of Avignon) 亚维农少女 1907 （Pablo Picasso, 巴勃罗·毕加索）</h3><p><a href="https://en.wikipedia.org/wiki/Les_Demoiselles_d%27Avignon">作品链接</a></p><p><img src="B27CA5B2BCB045C38DEF73AF309499EB.png.webp" alt=""></p><h3 id="53-A-Carnival-Evening-狂欢节之夜-1886（Henri-Rousseau-亨利·卢梭）">53. A Carnival Evening 狂欢节之夜 1886（Henri Rousseau, 亨利·卢梭）</h3><p><a href="https://www.philamuseum.org/collection/object/59593">作品链接</a></p><p><img src="A33D749C72164994B8E72829C8C90854.png.webp" alt=""></p><h3 id="54-The-Hungry-Lion-Throws-Itself-on-the-Antelope-Le-lion-ayant-faim-se-jette-sur-l’antilope-饿狮猛扑羚羊-1905（Henri-Rousseau-亨利·卢梭）">54. The Hungry Lion Throws Itself on the Antelope (Le lion ayant faim se jette sur l’antilope)  饿狮猛扑羚羊 1905（Henri Rousseau, 亨利·卢梭）</h3><p><a href="https://en.wikipedia.org/wiki/The_Hungry_Lion_Throws_Itself_on_the_Antelope">作品链接</a></p><p><img src="DF8584B961F44565824D6DBED6F4A62D.png.webp" alt=""></p><h3 id="55-Portrait-of-a-Woman-一个女人的肖像-1895-（Henri-Rousseau-亨利·卢梭）">55. Portrait of a Woman 一个女人的肖像 1895 （Henri Rousseau, 亨利·卢梭）</h3><p><a href="https://commons.wikimedia.org/wiki/File:Henri_Rousseau__Portrait_of_a_Woman_(1895).jpg.webp">作品链接</a></p><p><img src="D8C6AC5BA50C47DF85C252BA56BFCA59.png.webp" alt=""></p><h3 id="56-The-Kiss-French-Le-Baiser-吻-1882（Auguste-Rodin-奥古斯特·罗丹）">56. The Kiss (French: Le Baiser) 吻 1882（Auguste Rodin, 奥古斯特·罗丹）</h3><p><a href="https://en.wikipedia.org/wiki/The_Kiss_(Rodin_sculpture)">作品链接</a></p><p><img src="900214D2FDAF40098D6334EA46EBF82C.png.webp" alt=""></p><h3 id="57-The-Kiss-吻-1907-1908（Constantin-Brancusi-康斯坦丁·布朗库西）">57. The Kiss 吻 1907-1908（Constantin Brâncuși, 康斯坦丁·布朗库西）</h3><p><a href="https://en.wikipedia.org/wiki/The_Kiss_(Br%C3%A2ncu%C8%99i_sculpture)">作品链接</a></p><p><img src="constantin-brc3a2ncuc899i-the-kiss-1907.jpg.webp" alt=""></p><h3 id="58-Sleeping-Muse-沉睡的缪斯-1910-（Constantin-Brancusi-康斯坦丁·布朗库西）">58. Sleeping Muse, 沉睡的缪斯 1910 （Constantin Brâncuși, 康斯坦丁·布朗库西）</h3><p><a href="http://www.artic.edu/aic/collections/artwork/9024">作品链接</a></p><p><img src="2A62642890504349ACC9A1DC8153D0E2.png.webp" alt=""></p><h3 id="59-Head-头-1911-1912（Amedeo-Modigliani-阿梅代奥·莫迪利亚尼）">59. Head 头 1911-1912（Amedeo Modigliani, 阿梅代奥·莫迪利亚尼）</h3><p><a href="https://www.wikiart.org/en/amedeo-modigliani/head">作品链接</a></p><p><img src="B641129E7667430DA0D6BFF3BA9F0615.png.webp" alt=""></p><h3 id="60-Walking-Man-I-行走的人1-1960（Alberto-Giacometti，-阿尔伯托·贾科梅蒂）">60. Walking Man I 行走的人1 1960（Alberto Giacometti， 阿尔伯托·贾科梅蒂）</h3><p><a href="https://www.artsy.net/artwork/alberto-giacometti-walking-man-i">作品链接</a></p><p><img src="alberto-giacometti-walking-man-i.jpg.webp" alt=""></p><h3 id="61-Spoon-Woman勺形女人-1927-（Alberto-Giacometti，-阿尔伯托·贾科梅蒂）">61. Spoon Woman勺形女人 1927 （Alberto Giacometti， 阿尔伯托·贾科梅蒂）</h3><p><a href="http://www.artic.edu/aic/collections/artwork/37761">作品链接</a></p><p><img src="0BA44A45C41C403699EA3BB8B6A572DF.png.webp" alt=""></p><h3 id="62-Pierced-Form-穿孔之形-1963-1964（Barbara-Hepworth-芭芭拉·赫普沃斯）">62. Pierced Form 穿孔之形 1963-1964（Barbara Hepworth, 芭芭拉·赫普沃斯）</h3><p><a href="http://www.tate.org.uk/art/artworks/hepworth-pierced-form-t00704">作品链接</a></p><p><img src="EF6CEC44A1C347ABB57A1B396B48C16E.png.webp" alt=""></p><h3 id="63-Pelagos-海洋生物-1946-（Barbara-Hepworth-芭芭拉·赫普沃斯）">63. Pelagos 海洋生物 1946 （Barbara Hepworth, 芭芭拉·赫普沃斯）</h3><p><a href="http://www.tate.org.uk/art/artworks/hepworth-pelagos-t00699">作品链接</a></p><p><img src="B34E35D344B0439A9763CF9D2894BF9F.png.webp" alt=""></p><h3 id="64-Single-Form-单一的形式-1961-（Barbara-Hepworth-芭芭拉·赫普沃斯）">64. Single Form 单一的形式 1961 （Barbara Hepworth, 芭芭拉·赫普沃斯）</h3><p><a href="https://en.wikipedia.org/wiki/Single_Form">作品链接</a></p><p><img src="Barbara_Hepworth_Single_Form_Battersea.jfif.webp" alt=""></p><h2 id="7-立体主义：另一种视角，1907—1914">7 立体主义：另一种视角，1907—1914</h2><h3 id="65-Opening-of-the-Fifth-Seal-揭开第五印-1608（El-Greco-埃尔·格列柯）">65. Opening of the Fifth Seal 揭开第五印 1608（El Greco, 埃尔·格列柯）</h3><p><a href="https://en.wikipedia.org/wiki/Opening_of_the_Fifth_Seal">作品链接</a></p><p><img src="490E1EBEC42545AAA419BD4AFCDA193B.png.webp" alt=""></p><h3 id="66-Houses-at-l’Estaque-埃斯塔克的房子-1908（Georges-Braque-乔治·布拉克）">66. Houses at l’Estaque 埃斯塔克的房子 1908（Georges Braque, 乔治·布拉克）</h3><p><a href="https://en.wikipedia.org/wiki/Houses_at_l%27Estaque">作品链接</a></p><p><img src="E8BB25EFD8DA4C629441D09E2BBE7E1F.png.webp" alt=""></p><h3 id="67-Violin-and-Palette-小提琴与调色板-1909（Georges-Braque-乔治·布拉克）">67. Violin and Palette 小提琴与调色板 1909（Georges Braque, 乔治·布拉克）</h3><p><a href="https://www.wikiart.org/en/georges-braque/violin-and-palette-1909">作品链接</a></p><p><img src="F638F45A09BC4E03833F17A10D23A013.png.webp" alt=""></p><h3 id="68-Still-Life-with-Flowers-静物花卉-1912（Juan-Gris-胡安·格里斯）">68. Still Life with Flowers 静物花卉 1912（Juan Gris, 胡安·格里斯）</h3><p><a href="https://www.wikiart.org/en/juan-gris/still-life-with-flowers-1912">作品链接</a></p><p><img src="5F6559360465470CA708C2E5559A5A35.png.webp" alt=""></p><h3 id="69-Ma-Jolie-我的美人-1912（Pablo-Picasso-巴勃罗·毕加索）">69. Ma Jolie 我的美人 1912（Pablo Picasso, 巴勃罗·毕加索）</h3><p><a href="https://www.moma.org/collection/works/79051">作品链接</a></p><p><img src="4B75931B9EAE4DF0846AFA84E70E5D82.png.webp" alt=""></p><h3 id="70-Still-Life-with-Chair-Caning有藤椅的静物-1912（Pablo-Picasso-巴勃罗·毕加索）">70. Still-Life with Chair Caning有藤椅的静物 1912（Pablo Picasso, 巴勃罗·毕加索）</h3><p><a href="http://www.pablo-ruiz-picasso.net/work-88.php">作品链接</a></p><p><img src="CB420C006F8746EE9CCB8FD004FFF7F5.png.webp" alt=""></p><h3 id="71-Fruit-Dish-and-Glass-水果盘与玻璃杯-1912-（Georges-Braque-乔治·布拉克）">71. Fruit Dish and Glass 水果盘与玻璃杯 1912 （Georges Braque, 乔治·布拉克）</h3><p><a href="https://en.wikipedia.org/wiki/Fruit_Dish_and_Glass">作品链接</a></p><p><img src="12B20ECC9119452582CC46153AA9C3AD.png.webp" alt=""></p><h3 id="72-The-Little-Fourteen-Year-Old-Dancer-La-Petite-Danseuse-de-Quatorze-Ans-小舞女-1880-1881-（Edgar-Degas-埃德加·德加）">72. The Little Fourteen-Year-Old Dancer (La Petite Danseuse de Quatorze Ans)  小舞女 1880-1881 （Edgar Degas, 埃德加·德加）</h3><p><a href="https://en.wikipedia.org/wiki/Little_Dancer_of_Fourteen_Years">作品链接</a></p><p><img src="D11E81AA81254AD992B085AF4B81870C.png.webp" alt=""></p><h3 id="73-Guitar-吉他-1912（Pablo-Picasso-巴勃罗·毕加索）">73. Guitar 吉他 1912（Pablo Picasso, 巴勃罗·毕加索）</h3><p><a href="https://www.wikiart.org/en/pablo-picasso/guitar-1912">作品链接</a></p><p><img src="D3CC12C05EB24814800AABA1A9D52054.png.webp" alt=""></p><h2 id="8-未来主义：快进，1909—1919">8 未来主义：快进，1909—1919</h2><h3 id="74-Dynamism-of-a-Dog-on-a-Leash-Dinamismo-di-un-cane-al-guinzaglio-拴着皮带的狗的动态-1912（Giacomo-Balla-贾科莫·巴拉）">74. Dynamism of a Dog on a Leash (Dinamismo di un cane al guinzaglio) 拴着皮带的狗的动态 1912（Giacomo Balla, 贾科莫·巴拉）</h3><p><a href="https://en.wikipedia.org/wiki/Dynamism_of_a_Dog_on_a_Leash">作品链接</a></p><p><img src="7B3C4DC6F34A4CE6A82DD8990166ACDF.png.webp" alt=""></p><h3 id="75-Unique-Forms-of-Continuity-in-Space-空间中连续的唯一形体-1913（UmbertoBoccioni-翁贝托·薄丘尼）">75. Unique Forms of Continuity in Space 空间中连续的唯一形体 1913（UmbertoBoccioni, 翁贝托·薄丘尼）</h3><p><a href="https://en.wikipedia.org/wiki/Unique_Forms_of_Continuity_in_Space">作品链接</a></p><p><img src="C77E3A55F88B4D57BC944B17CEBADB4B.png.webp" alt=""></p><h3 id="76-States-of-Mind-心境-（UmbertoBoccioni-翁贝托·薄丘尼）">76. States of Mind 心境 （UmbertoBoccioni, 翁贝托·薄丘尼）</h3><p>States of Mind I: The Farewells 心境 1 告别 1911 <a href="https://www.moma.org/collection/works/78648">作品链接</a></p><p><img src="Umberto_Boccioni_States_of_Mind_I_The_Farewells_1911.webp" alt=""></p><p>States of Mind II: Those Who Go 心境 2 离开的人 1911 <a href="https://www.moma.org/collection/works/78653">作品链接</a></p><p><img src="Umberto_Boccioni_States_of_Mind_II_Those_Who_Go_1911.webp" alt=""></p><p>States of Mind III: Those Who Stay 心境 3 留下的人 1911 <a href="https://www.moma.org/collection/works/78660">作品链接</a></p><p><img src="Umberto_Boccioni_States_of_Mind_III_Those_Who_Stay_1911.webp" alt=""></p><h3 id="77-L’Equipe-de-Cardiff-加迪夫队-1913（Robert-Delaunay-罗伯特·德劳内）">77. L’Équipe de Cardiff 加迪夫队 1913（Robert Delaunay, 罗伯特·德劳内）</h3><p><a href="https://fr.wikipedia.org/wiki/L%27%C3%89quipe_de_Cardiff">作品链接</a></p><p><img src="Robert_Delaunay,_1913,_L'%C3%89quipe_de_Cardiff.jpg.webp" alt=""></p><h3 id="78-Rock-Drill-凿岩机-1913（Jacob-Epstein-雅各·爱泼斯坦）">78. Rock Drill 凿岩机 1913（Jacob Epstein, 雅各·爱泼斯坦）</h3><p><a href="https://en.wikipedia.org/wiki/Rock_Drill_(Jacob_Epstein)">作品链接</a></p><p><img src="302F65AC8EC04E548BE792C29F032B42.png.webp" alt=""></p><p><img src="Torso_in_Metal_from_'The_Rock_Drill'_by_Jacob_Epstein,_Tate_Britain.jfif.webp" alt=""></p><h2 id="9-康定斯基-俄耳甫斯主义-青骑士：音乐之声，1910—1914">9 康定斯基/俄耳甫斯主义/青骑士：音乐之声，1910—1914</h2><h3 id="79-The-First-Step-第一步-1910（Frantisek-Kupka-弗朗齐歇克·库普卡）">79. The First Step 第一步 1910（František Kupka, 弗朗齐歇克·库普卡）</h3><p><a href="https://www.moma.org/collection/works/79969">作品链接</a></p><p><img src="3CB8296DF6924A6C87975FFA055EF8D3.png.webp" alt=""></p><h3 id="80-Disque-simultane（Simultaneous-Disc）共时的圆盘-1912（Robert-Delaunay-罗伯特·德劳内）">80. Disque simultané（Simultaneous Disc）共时的圆盘 1912（Robert Delaunay, 罗伯特·德劳内）</h3><p><a href="https://fr.wikipedia.org/wiki/Disque_simultan%C3%A9">作品链接</a></p><p><img src="8384B8E535AF4C7081B5024F2B7117E1.png.webp" alt=""></p><h3 id="81-Munchen-Planegg-I-慕尼黑-普拉内格-1-1901（Wassily-Kandinsky-瓦西里·康定斯基）">81. München - Planegg I 慕尼黑-普拉内格 1 1901（Wassily Kandinsky, 瓦西里·康定斯基）</h3><p><a href="https://www.akg-images.de/archive/Munchen-%25E2%2580%2593-Planegg-I-2UMDHUORFRFR.html">作品链接</a></p><p><img src="30EC3DE6A01F4D84B01FB03AA63CCED6.png.webp" alt=""></p><h3 id="82-Murnau-Dorfstrasse-A-Village-Street-穆尔瑙，乡村道路-1908-（Wassily-Kandinsky-瓦西里·康定斯基）">82. Murnau, Dorfstrasse (A Village Street) 穆尔瑙，乡村道路 1908 （Wassily Kandinsky, 瓦西里·康定斯基）</h3><p><a href="https://commons.wikimedia.org/wiki/File:Vassily_Kandinsky,_1908,_Murnau,_Dorfstrasse.jpg.webp">作品链接</a></p><p><img src="10958C0A069F4D639A9AC19E972EA95A.png.webp" alt=""></p><h3 id="83-Kochel-Straight-Road-科黑尔，笔直之路-1909（Wassily-Kandinsky-瓦西里·康定斯基）">83. Kochel - Straight Road 科黑尔，笔直之路 1909（Wassily Kandinsky, 瓦西里·康定斯基）</h3><p><a href="http://www.the-athenaeum.org/art/detail.php?ID=116422">作品链接</a></p><p><img src="801B0F00AE5D4B1A8406DA9DFE0F4603.png.webp" alt=""></p><h3 id="84-Improvisation-4-即兴-4-1909（Wassily-Kandinsky-瓦西里·康定斯基）">84. Improvisation 4 即兴 4 1909（Wassily Kandinsky, 瓦西里·康定斯基）</h3><p><a href="https://www.wikiart.org/en/wassily-kandinsky/improvisation-4-1909">作品链接</a></p><p><img src="BF2AC1AFBEC445C9995F0EA9EEA2F756.png.webp" alt=""></p><h3 id="85-Impression-III-Concert-印象-3（音乐会）-1911-（Wassily-Kandinsky-瓦西里·康定斯基）">85. Impression III (Concert) 印象 3（音乐会） 1911 （Wassily Kandinsky, 瓦西里·康定斯基）</h3><p><a href="https://www.wikiart.org/en/wassily-kandinsky/impression-iii-concert-1911">作品链接</a></p><p><img src="42563917FF98404D9620B2F1D52D16BF.png.webp" alt=""></p><h3 id="86-Picture-with-a-Circle-带圆的画-1911-（Wassily-Kandinsky-瓦西里·康定斯基）">86. Picture with a Circle 带圆的画 1911 （Wassily Kandinsky, 瓦西里·康定斯基）</h3><p><a href="http://www.wassilykandinsky.net/work-432.php">作品链接</a></p><p><img src="A2B3E8BFDB9B4A189A9F897099D02029.png.webp" alt=""></p><h3 id="87-Composition-IV-作曲-4-1911（Wassily-Kandinsky-瓦西里·康定斯基）">87. Composition IV 作曲 4 1911（Wassily Kandinsky, 瓦西里·康定斯基）</h3><p><a href="https://www.wikiart.org/en/wassily-kandinsky/composition-iv-1911">作品链接</a></p><p><img src="28C13A7A38CB435C933564E576576AB6.png.webp" alt=""></p><h3 id="88-Composition-VII-作曲-7-1913（Wassily-Kandinsky-瓦西里·康定斯基）">88. Composition VII 作曲 7 1913（Wassily Kandinsky, 瓦西里·康定斯基）</h3><p><a href="http://www.wassilykandinsky.net/work-36.php">作品链接</a></p><p><img src="DEE1A92864534815A0BF887AED3DB92A.png.webp" alt=""></p><h3 id="89-Hammamet-with-mosque-哈马马特的清真寺-1914（Paul-Klee-保罗·克利）">89. Hammamet with mosque 哈马马特的清真寺 1914（Paul Klee, 保罗·克利）</h3><p><a href="https://www.wikiart.org/en/paul-klee/hammamet-with-mosque-1914">作品链接</a></p><p><img src="E757B103B0D347AABDAE8481F6278E98.png.webp" alt=""></p><h2 id="10-至上主义-构成主义：俄国人，1915—1925">10 至上主义/构成主义：俄国人，1915—1925</h2><h3 id="90-Cow-And-Violin-奶牛和小提琴-1913（Kazimir-Malevich-卡济米尔·马列维奇）">90. Cow And Violin 奶牛和小提琴 1913（Kazimir Malevich, 卡济米尔·马列维奇）</h3><p><a href="http://russianartgallery.org/famous/malevich_cow.htm">作品链接</a></p><p><img src="653A23613A324C81BDCC351BB3E93B76.png.webp" alt=""></p><h3 id="91-Black-Square-黑色正方形-1915-（Kazimir-Malevich-卡济米尔·马列维奇）">91. Black Square 黑色正方形 1915 （Kazimir Malevich, 卡济米尔·马列维奇）</h3><p><a href="https://en.wikipedia.org/wiki/Black_Square_(painting)">作品链接</a></p><p><img src="9C8B6666B7364558B51A396DB376DD78.png.webp" alt=""></p><h3 id="92-Suprematist-Painting-至上主义-1915-（Kazimir-Malevich-卡济米尔·马列维奇）">92. Suprematist Painting 至上主义 1915 （Kazimir Malevich, 卡济米尔·马列维奇）</h3><p><a href="http://www.ibiblio.org/eldritch/el/mpix.html">作品链接</a></p><p><img src="033C38C4D1814509B511F7C53F010B03.png.webp" alt=""></p><h3 id="93-Corner-Counter-Relief-1914-角落的反浮雕（Vladimir-Tatlin-弗拉基米尔·塔特林）">93. Corner Counter-Relief 1914 角落的反浮雕（Vladimir Tatlin, 弗拉基米尔·塔特林）</h3><p><a href="http://rusmuseumvrm.ru/data/collections/sculpture/20/tatlin_ve_uglovoy_kontrrelef_1914/index.php?lang=en">作品链接</a></p><p><img src="5B021D322CFE42CF94F5E3A220015EB8.png.webp" alt=""></p><h3 id="94-Monument-to-the-Third-International-第三国际的纪念（塔）-1919-1920（Vladimir-Tatlin-弗拉基米尔·塔特林）">94. Monument to the Third International 第三国际的纪念（塔） 1919-1920（Vladimir Tatlin, 弗拉基米尔·塔特林）</h3><p><a href="https://en.wikipedia.org/wiki/Tatlin%27s_Tower">作品链接</a></p><p><img src="71EB76D4E7344D7D9B4B0C316FF676C0.png.webp" alt=""></p><h3 id="95-Pure-Red-Color-Pure-Yellow-Color-Pure-Blue-Color-纯红、纯黄和纯蓝-1921（Alexander-Rodchenko-亚历山大·罗琴科）">95. Pure Red Color, Pure Yellow Color, Pure Blue Color 纯红、纯黄和纯蓝 1921（Alexander Rodchenko, 亚历山大·罗琴科）</h3><p><a href="https://www.tate.org.uk/whats-on/tate-modern/exhibition/rodchenko-popova/rodchenko-and-popova-defining-constructivism-6">作品链接</a></p><p><img src="383247DFC79C447D8D1399C4F9CE91A1.png.webp" alt=""></p><h3 id="96-Beat-the-Whites-with-the-Red-Wedge-以红锲攻打白军-1919（El-Lissitzky-埃尔·利西茨基）">96. Beat the Whites with the Red Wedge 以红锲攻打白军 1919（El Lissitzky, 埃尔·利西茨基）</h3><p><a href="https://en.wikipedia.org/wiki/Beat_the_Whites_with_the_Red_Wedge">作品链接</a></p><p><img src="6364DEF463674A82AED1EB8D684BB23F.png.webp" alt=""></p><h2 id="11-新造型主义：网格，1917—1931">11 新造型主义：网格，1917—1931</h2><h3 id="97-Composition-C-No-III-with-Red-Yellow-and-Blue-构成-C（第三号），红黄蓝-1935-（Piet-Mondrian-皮埃特·蒙特里安）">97. Composition C (No.III) with Red, Yellow and Blue 构成 C（第三号），红黄蓝 1935 （Piet Mondrian, 皮埃特·蒙特里安）</h3><p><a href="https://theartstack.com/artist/piet-mondrian/composition-c-no-iii-with-red-yellow-and-blue#">作品链接</a></p><p><img src="1B10D3220FCA46818C90A7F7D7835EF8.png.webp" alt=""></p><h3 id="98-Evening-Red-Tree-夜晚，红树-1908-（Piet-Mondrian-皮埃特·蒙特里安）">98. Evening; Red Tree 夜晚，红树 1908 （Piet Mondrian, 皮埃特·蒙特里安）</h3><p><a href="https://en.wikipedia.org/wiki/Evening;_Red_Tree">作品链接</a></p><p><img src="7A9349DC6CA54815BC5F7A6C789285D2.png.webp" alt=""></p><h3 id="99-Gray-Tree-灰色的树-1912-（Piet-Mondrian-皮埃特·蒙特里安）">99. Gray Tree 灰色的树 1912 （Piet Mondrian, 皮埃特·蒙特里安）</h3><p><a href="https://en.wikipedia.org/wiki/Gray_Tree">作品链接</a></p><p><img src="F56C8284B43049FA827575BC4E6703D8.png.webp" alt=""></p><h3 id="100-Blossoming-Apple-Tree-开花的苹果树-1912-（Piet-Mondrian-皮埃特·蒙特里安）">100. Blossoming Apple Tree 开花的苹果树 1912 （Piet Mondrian, 皮埃特·蒙特里安）</h3><p><a href="https://en.wikipedia.org/wiki/Evening;_Red_Tree#/media/File:Blossoming_apple_tree,_by_Piet_Mondriaan.jpg.webp">作品链接</a></p><p><img src="6E25D39F325C4FA3BC29E11862BF4D7E.png.webp" alt=""></p><h3 id="101-Tableau-No-2-Composition-No-VII-画面-2-构成-7-1913-（Piet-Mondrian-皮埃特·蒙特里安）">101. Tableau No. 2/Composition No. VII 画面 2/构成 7 1913 （Piet Mondrian, 皮埃特·蒙特里安）</h3><p><a href="https://theartstack.com/artist/piet-mondrian/tableau-no-2-compositio">作品链接</a></p><p><img src="757968A216864F6DB1A617FC8B8527F5.png.webp" alt=""></p><h3 id="102-Composition-No-VI-构成-6-1914-（Piet-Mondrian-皮埃特·蒙特里安）">102. Composition No VI 构成 6 1914 （Piet Mondrian, 皮埃特·蒙特里安）</h3><p><img src="C21F89FE916145ED9CB2FE6A85AA3973.png.webp" alt=""></p><h3 id="103-Ladder-Back-Chair-梯形靠背椅-1903-（Charles-Rennie-Mackintosh-查尔斯·雷尼·麦金托什）">103. Ladder Back Chair 梯形靠背椅 1903 （Charles Rennie Mackintosh, 查尔斯·雷尼·麦金托什）</h3><p><a href="https://collection.maas.museum/object/36784">作品链接</a></p><p><img src="Ladder_Back_Chair.jpg.webp" alt=""></p><h3 id="104-Red-and-Blue-Chair-红蓝椅-1918-1923-（Gerrit-Rietveld-赫里特·里特费尔德）">104. Red and Blue Chair 红蓝椅 1918-1923 （Gerrit Rietveld, 赫里特·里特费尔德）</h3><p><a href="https://www.moma.org/collection/works/4044">作品链接</a></p><p><img src="C91EB76BC601454186268B50616E6066.png.webp" alt=""></p><h3 id="105-Rietveld-Schroder-House-施罗德住宅-1924-（Gerrit-Rietveld-赫里特·里特费尔德）">105. Rietveld Schröder House 施罗德住宅 1924 （Gerrit Rietveld, 赫里特·里特费尔德）</h3><p><a href="https://en.wikipedia.org/wiki/Rietveld_Schr%C3%B6der_House">作品链接</a></p><p><img src="61E6885E9DD746C68CAADE8C6872B83E.png.webp" alt=""></p><h3 id="106-Composition-with-Red-Blue-and-Yellow-红黄蓝构成-1930-（Piet-Mondrian-皮埃特·蒙特里安）">106. Composition with Red, Blue and Yellow 红黄蓝构成 1930 （Piet Mondrian, 皮埃特·蒙特里安）</h3><p><a href="https://artsandculture.google.com/asset/composition-with-red-blue-and-yellow/xwERWaqDyIcZ9w">作品链接</a></p><p><img src="composition-with-red-blue-and-yellow-1930.jpg.webp" alt=""></p><h3 id="107-Composition-No-1-构成第一号-1920-（Piet-Mondrian-皮埃特·蒙特里安）">107. Composition No.1 构成第一号 1920 （Piet Mondrian, 皮埃特·蒙特里安）</h3><p><img src="33599F5981484A0BADDD7109AC7ABD12.png.webp" alt=""></p><h3 id="108-Composition-with-Red-Yellow-Blue-and-Black-红黄蓝黑构成-1921-（Piet-Mondrian-皮埃特·蒙特里安）">108. Composition with Red, Yellow, Blue and Black 红黄蓝黑构成 1921 （Piet Mondrian, 皮埃特·蒙特里安）</h3><p><img src="Piet_Mondriaan,_1921_-_Composition_en_rouge,_jaune,_bleu_et_noir.jpg.webp" alt=""></p><h2 id="12-包豪斯：校园重聚，1919—1933">12 包豪斯：校园重聚，1919—1933</h2><h3 id="109-Wainwright-Building-温赖特大厦-1891（Dankmar-Adler-and-Louis-Sullivan-阿德勒和路易斯·沙利文）">109. Wainwright Building 温赖特大厦 1891（Dankmar Adler and Louis Sullivan, 阿德勒和路易斯·沙利文）</h3><p><a href="https://en.wikipedia.org/wiki/Wainwright_Building">作品链接</a></p><p><img src="B391FAD170764F388797F22DB3A02EE2.png.webp" alt=""></p><h3 id="110-AEG-turbine-factory-通用电气涡轮机工厂-1909-（Peter-Behrens-彼特·贝伦斯）">110. AEG turbine factory 通用电气涡轮机工厂 1909 （Peter Behrens, 彼特·贝伦斯）</h3><p><a href="https://en.wikipedia.org/wiki/AEG_turbine_factory">作品链接</a></p><p><img src="52178FE9213B4E0DB4A3790E4630903F.png.webp" alt=""></p><h3 id="111-Fagus-Factory-Fagus-Werk-法古斯工厂-1911-1913-（Walter-Gropius-and-Adolf-Meyer-沃尔特·格罗佩斯，阿道夫·梅耶）">111. Fagus Factory (Fagus-Werk) 法古斯工厂 1911-1913 （Walter Gropius and Adolf Meyer, 沃尔特·格罗佩斯，阿道夫·梅耶）</h3><p><a href="https://www.bauhauskooperation.com/knowledge/the-bauhaus/phases/bauhaus-weimar/">作品链接</a></p><p><img src="5A6123510F7C42CFB4C2EC29A73C1B1D.png.webp" alt=""></p><h3 id="112-Cathedral-大教堂-1919-（Lyonel-Feininger-莱昂内尔·法宁格）">112. Cathedral 大教堂 1919 （Lyonel Feininger, 莱昂内尔·法宁格）</h3><p><a href="https://en.wikipedia.org/wiki/Fagus_Factory">作品链接</a></p><p><img src="Feininger_Lyonel_Titelblatt_Bauhaus_Manifest_Kathedrale_1919.jpg.webp" alt=""></p><h3 id="113-Self-Portrait-as-a-Soldier-作为一个军人的自画像-1915（Ernst-Ludwig-Kirchner-恩斯特·路德维希·凯尔希纳）">113. Self-Portrait as a Soldier 作为一个军人的自画像 1915（Ernst Ludwig Kirchner, 恩斯特·路德维希·凯尔希纳）</h3><p><a href="https://en.wikipedia.org/wiki/Self-Portrait_as_a_Soldier">作品链接</a></p><p><img src="01E521F0B82F4BB1B7E418CCE8D4490F.png.webp" alt=""></p><h3 id="114-Hot-Water-Jug-1924（Marianne-Brandt-玛丽安·布兰德）">114. Hot-Water Jug 1924（Marianne Brandt, 玛丽安·布兰德）</h3><p><a href="https://www.moma.org/collection/works/2440">作品链接</a></p><p><img src="81CE9A6DECCE4DB1BA7AF7A59311CB11.png.webp" alt=""></p><h3 id="115-Table-Lamp-华根菲尔德台灯-1924（Wilhelm-Wagenfeld-Carl-Jakob-Jucker-威尔赫姆·华根菲尔德，卡尔·朱克）">115. Table Lamp 华根菲尔德台灯 1924（Wilhelm Wagenfeld &amp; Carl Jakob Jucker, 威尔赫姆·华根菲尔德，卡尔·朱克）</h3><p><a href="https://www.moma.org/collection/works/4056?locale=en">作品链接</a></p><p><img src="823773F3CBEA4B889263F57856F1EB3A.png.webp" alt=""></p><h3 id="116-EM-1-Telephone-Picture-电话图-EM1-1923-（Laszlo-Moholy-Nagy-莫霍利·纳吉）">116. EM 1 (Telephone Picture) 电话图 EM1 1923 （László Moholy-Nagy, 莫霍利·纳吉）</h3><p><a href="https://www.moma.org/collection/works/147626">作品链接</a></p><p><img src="0185D67001C1470E84E24DDD8F3C2065.png.webp" alt=""></p><h3 id="117-Nesting-Tables-嵌套桌组-1927-（Josef-Albers-约瑟夫·亚伯斯）">117. Nesting Tables 嵌套桌组 1927 （Josef Albers, 约瑟夫·亚伯斯）</h3><p><a href="https://blog.timelesswroughtiron.com/2014/09/modern-history-bauhaus-nesting-tables/">作品链接</a></p><p><img src="1DA34F4E86C74D9F8FB34DDAF9D97A2A.png.webp" alt=""></p><h3 id="118-Wassily-Chair-瓦西里椅-1925（Marcel-Lajos-Breuer-马塞尔·布劳耶）">118. Wassily Chair 瓦西里椅 1925（Marcel Lajos Breuer, 马塞尔·布劳耶）</h3><p><a href="https://en.wikipedia.org/wiki/Wassily_Chair">作品链接</a></p><p><img src="70107B3974BB4B02A4763C5C47005CF7.png.webp" alt=""></p><h3 id="119-Bauhaus-包豪斯-1926-（Walter-Gropius-沃尔特·格罗佩斯）">119. Bauhaus 包豪斯 1926 （Walter Gropius, 沃尔特·格罗佩斯）</h3><p><a href="https://en.wikipedia.org/wiki/Bauhaus">作品链接</a></p><p><img src="6265_Dessau.jfif.webp" alt=""></p><h3 id="120-Barcelona-Pavilion-巴塞罗那世博会德国馆-1929-（Ludwig-Mies-van-der-Rohe-路德维希·密斯·凡德罗）">120. Barcelona Pavilion 巴塞罗那世博会德国馆 1929 （Ludwig Mies van der Rohe, 路德维希·密斯·凡德罗）</h3><p><a href="https://en.wikipedia.org/wiki/Barcelona_Pavilion">作品链接</a></p><p><img src="83E85B40DDEA4EDCBED49CF500AE7BC6.png.webp" alt=""></p><h3 id="121-Barcelona-Chair-巴塞罗那椅-1929-（Ludwig-Mies-van-der-Rohe-路德维希·密斯·凡德罗）">121. Barcelona Chair 巴塞罗那椅 1929 （Ludwig Mies van der Rohe, 路德维希·密斯·凡德罗）</h3><p><a href="https://www.moma.org/collection/works/4369?locale=en">作品链接</a></p><p><img src="0B80354B5DD845D7A625ECCD317A8E24.png.webp" alt=""></p><h2 id="13-达达主义：混乱的秩序，1916—1923">13 达达主义：混乱的秩序，1916—1923</h2><h3 id="122-La-Nona-Ora-The-Ninth-Hour-第九时辰-1999（Maurizio-Cattelan-莫瑞吉奥·卡特兰）">122. La Nona Ora (The Ninth Hour) 第九时辰 1999（Maurizio Cattelan, 莫瑞吉奥·卡特兰）</h3><p><a href="https://farticulate.wordpress.com/2010/10/21/la-nona-ora-the-ninth-hour-1999/">作品链接</a></p><p><img src="08744987465141129A60D51A4A8EBADD.png.webp" alt=""></p><h3 id="123-Collage-with-Squares-Arranged-according-to-the-Laws-of-Chance-根据随机法则排布的正方形的拼贴画-1916-1917-（Jean-（Hans）Arp-让·阿尔普（汉斯·阿尔普））">123. Collage with Squares Arranged according to the Laws of Chance 根据随机法则排布的正方形的拼贴画 1916-1917 （Jean （Hans）Arp, 让·阿尔普（汉斯·阿尔普））</h3><p><a href="https://www.moma.org/collection/works/37013?locale=en">作品链接</a></p><p><img src="14362882BB564419AACCAFDC6EF9F7B8.png.webp" alt=""></p><h3 id="124-Revolving-旋转-1919-（Kurt-Schwitters-库尔特·施维特斯）">124. Revolving 旋转 1919 （Kurt Schwitters, 库尔特·施维特斯）</h3><p><a href="https://www.moma.org/collection/works/79211?locale=en">作品链接</a></p><p><img src="7C7739081D774ABE9A51E59E6C0C2006.png.webp" alt=""></p><h3 id="125-Merzbau-梅尔兹堡-1933-（Kurt-Schwitters-库尔特·施维特斯）">125. Merzbau 梅尔兹堡 1933 （Kurt Schwitters, 库尔特·施维特斯）</h3><p><a href="https://www.moma.org/explore/inside_out/2012/07/09/in-search-of-lost-art-kurt-schwitterss-merzbau/">作品链接</a></p><p><img src="212F88FA27564713A029A7F2A060CCCC.png.webp" alt=""></p><h3 id="126-3-Standard-Stoppages-三个标准的终止-1913-1914（Marcel-Duchamp-马塞尔·杜尚）">126. 3 Standard Stoppages 三个标准的终止 1913-1914（Marcel Duchamp, 马塞尔·杜尚）</h3><p><a href="https://www.moma.org/collection/works/78990?locale=en">作品链接</a></p><p><img src="842DBBDFB0D945DDBA022D09FC0D4D5D.png.webp" alt=""></p><h3 id="127-L-H-O-O-Q-1919-（Marcel-Duchamp-马塞尔·杜尚）">127. L.H.O.O.Q. 1919 （Marcel Duchamp, 马塞尔·杜尚）</h3><p><a href="https://en.wikipedia.org/wiki/L.H.O.O.Q.">作品链接</a></p><p><img src="269B573B2BEF4490A743BCA87F13529C.png.webp" alt=""></p><h3 id="128-Beautiful-Breath-Veil-Water-美丽气息-1921-（Marcel-Duchamp-马塞尔·杜尚）">128. Beautiful Breath: Veil Water 美丽气息 1921 （Marcel Duchamp, 马塞尔·杜尚）</h3><p><a href="http://www.toutfait.com/unmaking_the_museum/Belle%20Haleine.html">作品链接</a></p><p><img src="ACB08FF0345340909F5C30CE9DA673DB.png.webp" alt=""></p><h2 id="14-超现实主义：以梦为生，1924—1945">14 超现实主义：以梦为生，1924—1945</h2><h3 id="129-The-Persistence-of-Memory-永恒的记忆-1931（Salvador-Dali-萨尔瓦多·达利）">129. The Persistence of Memory 永恒的记忆 1931（Salvador Dalí, 萨尔瓦多·达利）</h3><p><a href="https://www.moma.org/collection/works/79018?locale=en">作品链接</a></p><p><img src="854C0F6063F449E4878E0E37993AA1F5.png.webp" alt=""></p><h3 id="130-Lobster-Telephone-龙虾电话-1936-（Salvador-Dali-萨尔瓦多·达利）">130. Lobster Telephone 龙虾电话 1936 （Salvador Dalí, 萨尔瓦多·达利）</h3><p><a href="https://en.wikipedia.org/wiki/Lobster_Telephone">作品链接</a></p><p><img src="70281742222E4D32A0D10198996ADCA5.png.webp" alt=""></p><h3 id="131-Maman-妈妈-1999（Louise-Bourgeois-路易丝·布尔乔亚）">131. Maman 妈妈 1999（Louise Bourgeois, 路易丝·布尔乔亚）</h3><p><a href="https://en.wikipedia.org/wiki/Maman_(sculpture)">作品链接</a></p><p><img src="E828900CE0F44AD0B8B733D16CB4ABB0.png.webp" alt=""></p><h3 id="132-The-Three-Dancers-三个舞蹈者-1925（Pablo-Picasso-巴勃罗·毕加索）">132. The Three Dancers 三个舞蹈者 1925（Pablo Picasso, 巴勃罗·毕加索）</h3><p><a href="http://www.tate.org.uk/art/artworks/picasso-the-three-dancers-t00729">作品链接</a></p><p><img src="CC165586210C454987E1FFB14AA440EB.png.webp" alt=""></p><h3 id="133-The-Harlequin’s-Carnival-小丑的狂欢夜-1924-1925（Joan-Miro-胡安·米罗）">133. The Harlequin’s Carnival 小丑的狂欢夜 1924-1925（Joan Miró, 胡安·米罗）</h3><p><a href="https://en.wikipedia.org/wiki/The_Harlequin%27s_Carnival">作品链接</a></p><p><img src="EB36CD42916A48FD8E668FE67F201698.png.webp" alt=""></p><h3 id="134-The-Elephant-Celebes-or-short-Celebes-西里伯斯-1921（Max-Ernst-马克斯·恩斯特）">134. The Elephant Celebes (or short Celebes) 西里伯斯 1921（Max Ernst, 马克斯·恩斯特）</h3><p><a href="https://en.wikipedia.org/wiki/The_Elephant_Celebes">作品链接</a></p><p><img src="D45DF318C882405A829244AFE7778E2F.png.webp" alt=""></p><h3 id="135-Forest-and-Dove-森林与鸽子-1927-（Max-Ernst-马克斯·恩斯特）">135. Forest and Dove 森林与鸽子 1927 （Max Ernst, 马克斯·恩斯特）</h3><p><a href="http://www.tate.org.uk/art/artworks/ernst-forest-and-dove-t00548">作品链接</a></p><p><img src="E42210B9054344BAA08A660F04F1EF3C.png.webp" alt=""></p><h3 id="136-The-Menaced-Assassin-受威胁的暗杀者-1927-（Rene-Magritte-勒内·马格里特）">136. The Menaced Assassin 受威胁的暗杀者 1927 （René Magritte, 勒内·马格里特）</h3><p><a href="https://www.moma.org/collection/works/79267?locale=zh">作品链接</a></p><p><img src="D3E1AA8558174891B190B453D72ECCBB.png.webp" alt=""></p><h3 id="137-The-Song-of-Love-爱之歌-1914（Giorgio-de-Chirico-乔治·德·基里科）">137. The Song of Love 爱之歌 1914（Giorgio de Chirico, 乔治·德·基里科）</h3><p><a href="https://en.wikipedia.org/wiki/The_Song_of_Love">作品链接</a></p><p><img src="14B555CEB20C4E0BA3B561F6FC7FFF7B.png.webp" alt=""></p><h3 id="138-Nighthawks-夜鹰-1924（Edward-Hopper-爱德华·霍普）">138. Nighthawks 夜鹰 1924（Edward Hopper, 爱德华·霍普）</h3><p><a href="https://en.wikipedia.org/wiki/Nighthawks">作品链接</a></p><p><img src="4C932B57A0B84B1ABBAEF2FF1997B7B8.png.webp" alt=""></p><h3 id="139-Primacy-of-Matter-over-Thought-物质相对于思想的第一性-1929（Man-Ray-Emmanuel-Radnitzky）-曼·雷）">139. Primacy of Matter over Thought 物质相对于思想的第一性 1929（Man Ray (Emmanuel Radnitzky）, 曼·雷）</h3><p><a href="https://www.wikiart.org/en/man-ray/primacy-of-matter-over-thought-1929">作品链接</a></p><p><img src="711BB25550AD4B5DA017C95A1E05E70C.png.webp" alt=""></p><h3 id="140-Object-“The-Luncheon-in-Fur”-物体（皮毛餐具）-1936（Meret-Oppenheim-莫瑞特·奥本海姆）">140. Object (“The Luncheon in Fur”) 物体（皮毛餐具） 1936（Méret Oppenheim, 莫瑞特·奥本海姆）</h3><p><a href="https://www.moma.org/collection/works/80997?locale=en">作品链接</a></p><p><img src="EE7371C79C584BE3ACF541BAFA762554.png.webp" alt=""></p><h3 id="141-Erotique-voilee-色情的面纱-1933（Man-Ray-Emmanuel-Radnitzky-曼·雷）">141. Erotique voilée 色情的面纱 1933（Man Ray (Emmanuel Radnitzky), 曼·雷）</h3><p><a href="http://www.museoreinasofia.es/en/collection/artwork/erotique-voilee-veiled-erotic">作品链接</a></p><p><img src="4B2B018323EC4EF2ACDDB44BB65F750D.png.webp" alt=""></p><h3 id="142-The-Dream-The-Bed-梦-1940（Frida-Kahlo-弗里达·卡罗）">142. The Dream (The Bed) 梦 1940（Frida Kahlo, 弗里达·卡罗）</h3><p><a href="https://www.wikiart.org/en/frida-kahlo/the-dream-the-bed-1940">作品链接</a></p><p><img src="C3AA380E5D954ACDB94FE235C7C0B2AC.png.webp" alt=""></p><h3 id="143-Self-Portrait-The-Frame-自画像：框架-1938-（Frida-Kahlo-弗里达·卡罗）">143. Self Portrait - The Frame 自画像：框架 1938 （Frida Kahlo, 弗里达·卡罗）</h3><p><a href="https://www.wikiart.org/en/frida-kahlo/self-portrait-the-frame-1938">作品链接</a></p><p><img src="7F0C8DE0B5794054958083ED2C9D2643.png.webp" alt=""></p><h3 id="144-Self-Portrait-The-Inn-of-the-Dawn-Horse-自画像：黎明马客栈-1937-1938-（Leonora-Carrington-利奥诺拉·卡灵顿）">144. Self-Portrait: The Inn of the Dawn Horse 自画像：黎明马客栈 1937-1938 （Leonora Carrington, 利奥诺拉·卡灵顿）</h3><p><a href="https://curiator.com/art/leonora-carrington/self-portrait-inn-of-the-dawn-horse">作品链接</a></p><p><img src="C3798772A0E5406591CB4962E4F83DD8.png.webp" alt=""></p><h2 id="15-抽象表现主义：宏大的姿态，1943—1970">15 抽象表现主义：宏大的姿态，1943—1970</h2><h3 id="145-Men-in-the-city-城市里的人-1919（Fernand-Leger-费尔南德·莱热）">145. Men in the city 城市里的人 1919（Fernand Léger, 费尔南德·莱热）</h3><p><a href="https://www.wikiart.org/en/fernand-leger/men-in-the-city-1919">作品链接</a></p><p><img src="2B80313395364626898394E4E41FF582.png.webp" alt=""></p><h3 id="146-Bird-in-Space-空间中的鸟-1928（Constantin-Brancusi-康斯坦丁·布朗库西）">146. Bird in Space 空间中的鸟 1928（Constantin Brâncuși, 康斯坦丁·布朗库西）</h3><p><a href="https://www.moma.org/collection/works/81033?locale=en">作品链接</a></p><p><img src="E36F4C58EB6B47CBA9B3300A7F538750.png.webp" alt=""></p><h3 id="147-Stenographic-Figure-速记人物-1942-（Jackson-Pollock-杰克逊·波洛克）">147. Stenographic Figure 速记人物 1942 （Jackson Pollock, 杰克逊·波洛克）</h3><p><a href="https://www.moma.org/collection/works/79686?locale=en">作品链接</a></p><p><img src="46D94217515F4836B5523B813D39770A.png.webp" alt=""></p><h3 id="148-Mural-壁画-1943（Jackson-Pollock-杰克逊·波洛克）">148. Mural 壁画 1943（Jackson Pollock, 杰克逊·波洛克）</h3><p><a href="https://www.wikiart.org/en/jackson-pollock/mural-1943-1">作品链接</a></p><p><img src="A45F1330E4A34170B3D76BF210F83E9E.png.webp" alt=""></p><h3 id="149-The-She-Wolf-母狼-1943-（Jackson-Pollock-杰克逊·波洛克）">149. The She-Wolf 母狼 1943 （Jackson Pollock, 杰克逊·波洛克）</h3><p><a href="https://www.moma.org/collection/works/78719?locale=en">作品链接</a></p><p><img src="9A7DE1DEBD06425FADED0D94F4CC7985.png.webp" alt=""></p><h3 id="150-Full-Fathom-Five-满五英寻-1947-（Jackson-Pollock-杰克逊·波洛克）">150. Full Fathom Five 满五英寻 1947 （Jackson Pollock, 杰克逊·波洛克）</h3><p><a href="https://www.moma.org/collection/works/79070?locale=en">作品链接</a></p><p><img src="8E44D30777D34710A99383AA3B9573DF.png.webp" alt=""></p><h3 id="151-Painting-画-1948-（Willem-de-Kooning-威廉·德·库宁）">151. Painting 画 1948 （Willem de Kooning, 威廉·德·库宁）</h3><p><a href="https://www.moma.org/collection/works/79242?locale=en">作品链接</a></p><p><img src="7E248A3D8F1144259F68D6E3982151EC.png.webp" alt=""></p><h3 id="152-Excavation-挖掘-1950-（Willem-de-Kooning-威廉·德·库宁）">152. Excavation 挖掘 1950 （Willem de Kooning, 威廉·德·库宁）</h3><p><a href="https://www.wikiart.org/en/willem-de-kooning/excavation">作品链接</a></p><p><img src="E3FAFFE8A0954DB0BCF84E09EC864081.png.webp" alt=""></p><h3 id="153-Woman-I-女人1-1950-1952-（Willem-de-Kooning-威廉·德·库宁）">153. Woman I 女人1 1950-1952 （Willem de Kooning, 威廉·德·库宁）</h3><p><a href="https://www.moma.org/collection/works/79810?locale=en">作品链接</a></p><p><img src="7625DB68DCFB4914831675422A28DC8C.png.webp" alt=""></p><h3 id="154-Rokeby-Venus-镜前的维纳斯-1647-1651-（Diego-Velazquez-委拉斯开兹）">154. Rokeby Venus 镜前的维纳斯 1647-1651 （Diego Velázquez, 委拉斯开兹）</h3><p><a href="https://en.wikipedia.org/wiki/Rokeby_Venus">作品链接</a></p><p><img src="RokebyVenus.jpg.webp" alt=""></p><h3 id="155-Onement-I-太一-1-1948-（Barnett-Newman-巴尼特·纽曼）">155. Onement, I 太一 1 1948 （Barnett Newman, 巴尼特·纽曼）</h3><p><a href="https://www.moma.org/collection/works/79601?locale=en">作品链接</a></p><p><img src="9F3303B7DCE84F35AF36ACB3FCDC24D9.png.webp" alt=""></p><h3 id="156-Vir-Heroicus-Sublimis-人，英勇而崇高-1950-1951-（Barnett-Newman-巴尼特·纽曼）">156. Vir Heroicus Sublimis 人，英勇而崇高 1950-1951 （Barnett Newman, 巴尼特·纽曼）</h3><p><a href="https://www.moma.org/collection/works/79250?locale=en">作品链接</a></p><p><img src="5E9B8089F1E146D3ACD2D119AFEAD4E1.png.webp" alt=""></p><h3 id="157-Untitled-Violet-Black-Orange-Yellow-on-White-and-Red-无题（白红上的紫罗兰色、黑色、橙色和黄色）-1949-（Mark-Rothko-马克·罗斯科）">157. Untitled (Violet, Black, Orange, Yellow on White and Red) 无题（白红上的紫罗兰色、黑色、橙色和黄色） 1949 （Mark Rothko, 马克·罗斯科）</h3><p><a href="https://www.guggenheim.org/artwork/3533">作品链接</a></p><p><img src="4351D06DB36E44F3A09CF137C5D8B402.png.webp" alt=""></p><h3 id="158-Ochre-and-Red-on-Red-赭石，红上之红-1949-（Mark-Rothko-马克·罗斯科）">158. Ochre and Red on Red 赭石，红上之红 1949 （Mark Rothko, 马克·罗斯科）</h3><p><a href="https://www.wikiart.org/en/mark-rothko/ochre-and-red-on-red-1">作品链接</a></p><p><img src="B0A775B349054B50820BB9095E98B814.png.webp" alt=""></p><h3 id="159-Australia-澳大利亚-1951-（David-Smith-大卫·史密斯）">159. Australia 澳大利亚 1951 （David Smith, 大卫·史密斯）</h3><p><a href="https://www.moma.org/collection/works/82047?locale=en">作品链接</a></p><p><img src="4AA937C3EA854F2CB23C276679D8587C.png.webp" alt=""></p><h3 id="160-Early-One-Morning-一天清晨-1962-（Anthony-Caro-安东尼·卡洛）">160. Early One Morning 一天清晨 1962 （Anthony Caro, 安东尼·卡洛）</h3><p><a href="http://www.tate.org.uk/art/artworks/caro-early-one-morning-t00805">作品链接</a></p><p><img src="4B005A546B7246B28AA285B3CC41D38B.png.webp" alt=""></p><h2 id="16-波普艺术：零售疗法，1956—1970">16 波普艺术：零售疗法，1956—1970</h2><h3 id="161-I-was-a-Rich-Man’s-Plaything-我是一个有钱人的玩物-1947-（Eduardo-Paolozzi-爱德华多·保罗齐）">161. I was a Rich Man’s Plaything 我是一个有钱人的玩物 1947 （Eduardo Paolozzi, 爱德华多·保罗齐）</h3><p><a href="http://www.tate.org.uk/art/artworks/paolozzi-i-was-a-rich-mans-plaything-t01462">作品链接</a></p><p><img src="A490C7B6E41544268D516166E217225F.png.webp" alt=""></p><h3 id="162-Just-what-is-it-that-makes-today’s-homes-so-different-so-appealing-是什么让今天的家庭如此不同、如此富有魅力？-1956-（Richard-Hamilton-理查德·汉密尔顿）">162. Just what is it that makes today’s homes so different, so appealing? 是什么让今天的家庭如此不同、如此富有魅力？ 1956 （Richard Hamilton, 理查德·汉密尔顿）</h3><p><a href="https://en.wikipedia.org/wiki/Just_what_is_it_that_makes_today%27s_homes_so_different,_so_appealing%3F">作品链接</a></p><p><img src="567B12F07D3A482094028D023E2E9D6E.png.webp" alt=""></p><h3 id="163-Flag-旗-1954-1955（Jasper-Johns-贾斯培·琼斯）">163. Flag 旗 1954-1955（Jasper Johns, 贾斯培·琼斯）</h3><p><a href="https://www.moma.org/collection/works/78805?locale=en">作品链接</a></p><p><img src="3BE1E550AE9B490A9EA0DDF5466972E4.png.webp" alt=""></p><h3 id="164-Monogram-字母组合-1955-1959（Robert-Rauschenberg-罗伯特·劳森伯格）">164. Monogram 字母组合 1955-1959（Robert Rauschenberg, 罗伯特·劳森伯格）</h3><p><a href="https://www.moma.org/audio/playlist/40/648">作品链接</a></p><p><img src="6FEAE3CA9A3441EC8ACA597B1496B8BD.png.webp" alt=""></p><h3 id="165-White-Painting-白色绘画-1951-（Robert-Rauschenberg-罗伯特·劳森伯格）">165. White Painting 白色绘画 1951 （Robert Rauschenberg, 罗伯特·劳森伯格）</h3><p><a href="https://www.moma.org/audio/playlist/40/639">作品链接</a></p><p><img src="90581DABFC364EE1AC73D3C8DF7BD1F3.png.webp" alt=""></p><h3 id="166-White-on-White-白上之白-1918-（Kazimir-Malevich-卡济米尔·马列维奇）">166. White on White 白上之白 1918 （Kazimir Malevich, 卡济米尔·马列维奇）</h3><p><a href="https://en.wikipedia.org/wiki/White_on_White">作品链接</a></p><p><img src="White_on_White.png.webp" alt=""></p><h3 id="167-Erased-de-Kooning-Drawing-擦除的德·库宁绘画-1953-（Robert-Rauschenberg-罗伯特·劳森伯格）">167. Erased de Kooning Drawing 擦除的德·库宁绘画 1953 （Robert Rauschenberg, 罗伯特·劳森伯格）</h3><p><a href="https://www.rauschenbergfoundation.org/art/artwork/erased-de-kooning-drawing">作品链接</a></p><p><img src="8F0AB79997274561B6DF27A20ED365EE.png.webp" alt=""></p><h3 id="168-Coca-Cola-可口可乐-1961（Andy-Warhol-安迪·沃霍尔）">168. Coca-Cola 可口可乐 1961（Andy Warhol, 安迪·沃霍尔）</h3><p><a href="https://www.zhihu.com/question/22057640">作品链接</a></p><p><img src="B3CD7086FC7143AD864A7EB4A114B0E4.png.webp" alt=""></p><h3 id="169-Water-Heater-热水器-1961-（Andy-Warhol-安迪·沃霍尔）">169. Water Heater 热水器 1961 （Andy Warhol, 安迪·沃霍尔）</h3><p><a href="https://www.moma.org/collection/works/80290?locale=en">作品链接</a></p><p><img src="803EF64AB0364B0B8D4384ABF3A5DC26.png.webp" alt=""></p><h3 id="170-Campbell’s-Soup-Cans-金宝汤罐头-1962-（Andy-Warhol-安迪·沃霍尔）">170. Campbell’s Soup Cans 金宝汤罐头 1962 （Andy Warhol, 安迪·沃霍尔）</h3><p><a href="https://www.moma.org/collection/works/79809?locale=en">作品链接</a></p><p><img src="1331CB8DC6EA465590192F4B47BF72F3.png.webp" alt=""></p><h3 id="171-Sunflower-Seeds-葵花籽-2010-（Ai-Weiwei-艾未未）">171. Sunflower Seeds 葵花籽 2010 （Ai Weiwei, 艾未未）</h3><p><a href="https://www.tate.org.uk/art/artworks/ai-sunflower-seeds-t13408">作品链接</a></p><p><img src="T13408_10.jpg.webp" alt=""></p><h3 id="172-Marilyn-Diptych-玛丽莲双联画-1962-（Andy-Warhol-安迪·沃霍尔）">172. Marilyn Diptych 玛丽莲双联画 1962 （Andy Warhol, 安迪·沃霍尔）</h3><p><a href="https://en.wikipedia.org/wiki/Marilyn_Diptych">作品链接</a></p><p><img src="DE51D4EAD99B4074A27BC17BF1C63C65.png.webp" alt=""></p><h3 id="173-Superman-超人-1961-（Andy-Warhol-安迪·沃霍尔）">173. Superman 超人 1961 （Andy Warhol, 安迪·沃霍尔）</h3><p><a href="https://theartstack.com/artist/andy-warhol/superman-1961">作品链接</a></p><p><img src="16FB2C809F8E4B3E8F0EAC8DD15B48A3.png.webp" alt=""></p><h3 id="174-Whaam-嘭！-1963-（Roy-Lichtenstein-罗伊·利希滕斯坦）">174. Whaam! 嘭！ 1963 （Roy Lichtenstein, 罗伊·利希滕斯坦）</h3><p><a href="https://en.wikipedia.org/wiki/Whaam!">作品链接</a></p><p><img src="C8565A48086C4E06AA113AB7E9BEFBAD.png.webp" alt=""></p><h3 id="175-Brushstroke-笔触-1965（Roy-Lichtenstein-罗伊·利希滕斯坦）">175. Brushstroke 笔触 1965（Roy Lichtenstein, 罗伊·利希滕斯坦）</h3><p><a href="https://www.moma.org/collection/works/60284?locale=en">作品链接</a></p><p><img src="C1166F1E8133435F9931BEFD7E102603.png.webp" alt=""></p><h3 id="176-Two-Cheeseburgers-with-Everything-Dual-Hamburgers-两个一切都有的芝士汉堡（双份汉堡）-1962-（Claes-Oldenburg-克拉斯·欧登伯格）">176. Two Cheeseburgers, with Everything (Dual Hamburgers) 两个一切都有的芝士汉堡（双份汉堡） 1962 （Claes Oldenburg, 克拉斯·欧登伯格）</h3><p><a href="https://www.moma.org/collection/works/81183?locale=en">作品链接</a></p><p><img src="FA0A776343D84D36A5839E7DD2E2CE04.png.webp" alt=""></p><h2 id="17-观念主义-激流派-贫穷艺术-行为艺术：心灵游戏，1952年至今">17 观念主义/激流派/贫穷艺术/行为艺术：心灵游戏，1952年至今</h2><h3 id="177-1000-2009-（Paola-Pivi-保拉·皮维）">177. 1000 2009 （Paola Pivi, 保拉·皮维）</h3><p><a href="https://www.tate.org.uk/research/publications/performance-at-tate/case-studies/paola-pivi">作品链接</a></p><p><img src="ppivi1.jpg.webp" alt=""></p><h3 id="178-Volatile-挥发物-1980-1994-（Cildo-Meireles-切尔多·梅雷莱斯）">178. Volatile 挥发物 1980-1994 （Cildo Meireles, 切尔多·梅雷莱斯）</h3><p><a href="https://www.tate.org.uk/whats-on/tate-modern/exhibition/cildo-meireles/cildo-meireles-explore-exhibition/cildo-meireles-5">作品链接</a></p><p><img src="meireles_volatile_1980_94.jpg.webp" alt=""></p><h3 id="179-The-Artist-Is-Present-艺术家在现场-2010-（Marina-Abramovic-玛丽娜·阿布拉莫维奇）">179. The Artist Is Present 艺术家在现场 2010 （Marina Abramović, 玛丽娜·阿布拉莫维奇）</h3><p><a href="https://www.moma.org/learn/moma_learning/marina-abramovic-marina-abramovic-the-artist-is-present-2010">作品链接</a></p><p><img src="1533749641824EA4B6AD78CB218C3D21.png.webp" alt=""></p><h3 id="180-18-Happenings-in-6-Parts-6处18次即兴表演-1959-（Allan-Kaprow-艾伦·卡普罗）">180. 18 Happenings in 6 Parts 6处18次即兴表演 1959 （Allan Kaprow, 艾伦·卡普罗）</h3><p><a href="http://www.medienkunstnetz.de/works/18-happenings-in-6-parts/">作品链接</a></p><p><img src="2967D910930E47ABA00963D00EF7095C.png.webp" alt=""></p><h3 id="181-Anthropometrie-de-l’Epoque-Bleue-Anthropometry-of-the-Blue-Period-蓝色时期的人体测量-1960-（Yves-Klein-伊夫·克莱因）">181. Anthropométrie de l’Époque Bleue (Anthropometry of the Blue Period) 蓝色时期的人体测量 1960 （Yves Klein, 伊夫·克莱因）</h3><p><a href="http://www.yvesklein.com/en/oeuvres/view/595/anthropometrie-de-l-epoque-bleue-anthropometry-of-the-blue-period/">作品链接</a></p><p><img src="picture_file_1394.jpg.webp" alt=""></p><h3 id="182-Spatial-Concept-Expectations-空间概念：等待-1960-（Lucio-Fontana-卢齐欧·冯塔纳）">182. Spatial Concept: Expectations 空间概念：等待 1960 （Lucio Fontana, 卢齐欧·冯塔纳）</h3><p><a href="https://www.moma.org/collection/works/79874?locale=en">作品链接</a></p><p><img src="4DBF83F6200E4AEA8876194CCB71E23D.png.webp" alt=""></p><h3 id="183-Newspaper-Sphere-报纸球-1966（Michelangelo-Pistoletto-米开朗基罗·皮斯特莱托）">183. Newspaper Sphere 报纸球 1966（Michelangelo Pistoletto, 米开朗基罗·皮斯特莱托）</h3><p><img src="5E803DF2DD6644CEB3DEB038A4CB1AD2.png.webp" alt=""></p><h3 id="184-Venus-of-the-Rags-破衫中的维纳斯-1967-（Michelangelo-Pistoletto-米开朗基罗·皮斯特莱托）">184. Venus of the Rags 破衫中的维纳斯 1967 （Michelangelo Pistoletto, 米开朗基罗·皮斯特莱托）</h3><p><a href="http://www.tate.org.uk/art/artworks/pistoletto-venus-of-the-rags-t12200">作品链接</a></p><p><img src="A80E6FBB799046F78A585E13ECA27D15.png.webp" alt=""></p><h3 id="185-Untitled-12-Horses-无题（12匹马）1969-（Jannis-Kounellis-简尼斯·库奈利斯）">185. Untitled (12 Horses) 无题（12匹马）1969 （Jannis Kounellis, 简尼斯·库奈利斯）</h3><p><img src="354DE98480B241628F04B8642CD90FDD.png.webp" alt=""></p><h3 id="186-The-Pack-一群-1969（Joseph-Beuys-约瑟夫·博伊斯）">186. The Pack 一群 1969（Joseph Beuys, 约瑟夫·博伊斯）</h3><p><a href="https://www.wikiart.org/en/joseph-beuys/the-pack-1969">作品链接</a></p><p><img src="27455D3DB8314C5D99044F5038EBA301.png.webp" alt=""></p><h3 id="187-I-Like-America-and-America-Likes-Me-我爱美国，美国爱我-1974-（Joseph-Beuys-约瑟夫·博伊斯）">187. I Like America and America Likes Me 我爱美国，美国爱我 1974 （Joseph Beuys, 约瑟夫·博伊斯）</h3><p><a href="https://www.wikiart.org/en/joseph-beuys/i-like-america-and-america-likes-me">作品链接</a></p><p><img src="9C9A39B018B54E35A0764E616DD926EC.png.webp" alt=""></p><h3 id="188-How-to-Explain-Pictures-to-a-Dead-Hare-怎样向一只死兔子解释绘画-1965（Joseph-Beuys-约瑟夫·博伊斯）">188. How to Explain Pictures to a Dead Hare 怎样向一只死兔子解释绘画 1965（Joseph Beuys, 约瑟夫·博伊斯）</h3><p><a href="https://www.wikiart.org/en/joseph-beuys/how-to-explain-pictures-to-a-dead-hare-1965-1">作品链接</a></p><p><img src="99205D8940624BB0A836001581D4CB39.png.webp" alt=""></p><h3 id="189-Cut-Piece-切片-1964-（Yoko-Ono-小野洋子）">189. Cut Piece 切片 1964 （Yoko Ono, 小野洋子）</h3><p><a href="https://www.moma.org/learn/moma_learning/yoko-ono-cut-piece-1964">作品链接</a></p><p><img src="7919A228DED84BBF86C60C8BBAD8726D.png.webp" alt=""></p><h3 id="190-Failure-to-Levitate-in-the-Studio-未能在工作室漂浮-1966（Bruce-Nauman-布鲁斯·瑙曼）">190. Failure to Levitate in the Studio 未能在工作室漂浮 1966（Bruce Nauman, 布鲁斯·瑙曼）</h3><p><a href="http://www.artda.cn/view.php?tid=2306&amp;cid=29">作品链接</a></p><p><a href="http://www.stedelijkmuseum.nl/kunstwerk/96022-failing-to-levitate-in-the-studio">作品链接</a></p><p><img src="A55276FE2FC0473FA8CA7CD1D53D63D6.png.webp" alt=""></p><h3 id="191-Dance-or-Exercise-on-the-Perimeter-of-a-Square-Square-Dance-在广场周边跳舞或锻炼（广场舞）-1967（Bruce-Nauman-布鲁斯·瑙曼）">191. Dance or Exercise on the Perimeter of a Square (Square Dance) 在广场周边跳舞或锻炼（广场舞） 1967（Bruce Nauman, 布鲁斯·瑙曼）</h3><p><a href="https://www.moma.org/collection/works/119087">作品链接</a></p><p><img src="86DA3C0A71B1461EA6BE602799B743DB.png.webp" alt=""></p><h3 id="192-The-Collectors-收藏家-1990-1992-（Francis-Alys-弗朗西斯·阿里斯）">192. The Collectors 收藏家 1990-1992 （Francis Alÿs, 弗朗西斯·阿里斯）</h3><p><a href="http://www.tate.org.uk/whats-on/tate-modern/exhibition/francis-alys/francis-alys-story-deception-room-guide/francis-alys-0">作品链接</a></p><p><img src="0DD5329FA291471182EB87D88C242453.png.webp" alt=""></p><h3 id="193-Re-enactments-重演-2001（Francis-Alys-弗朗西斯·阿里斯）">193. Re-enactments 重演 2001（Francis Alÿs, 弗朗西斯·阿里斯）</h3><p><a href="https://www.moma.org/collection/works/130829">作品链接</a></p><p><img src="28391558022A4CC68AC7B790881458B0.png.webp" alt=""></p><h3 id="194-A-Line-Made-by-Walking-走出来的线-1967（Richard-Long-理查德·朗）">194. A Line Made by Walking 走出来的线 1967（Richard Long, 理查德·朗）</h3><p><a href="http://www.tate.org.uk/art/artworks/long-a-line-made-by-walking-ar00142">作品链接</a></p><p><img src="C868427DADF141B399D3274295C451DC.png.webp" alt=""></p><h3 id="195-Spiral-Jetty-螺旋形的防波堤-1970（Robert-Smithon-罗伯特•史密森）">195. Spiral Jetty 螺旋形的防波堤 1970（Robert Smithon, 罗伯特•史密森）</h3><p><a href="https://en.wikipedia.org/wiki/Spiral_Jetty">作品链接</a></p><p><img src="AC42E8EACE1844E0BAC95A7DE47A879A.png.webp" alt=""></p><h2 id="18-极简主义：无题，1960—1975">18 极简主义：无题，1960—1975</h2><h3 id="196-Untitled-无题-1972（Donald-Judd-唐纳德·贾德）">196. Untitled 无题 1972（Donald Judd, 唐纳德·贾德）</h3><p><a href="http://www.tate.org.uk/art/artworks/judd-untitled-t06524">作品链接</a></p><p><img src="2492582730334DC38BE4A2CB781717B3.png.webp" alt=""></p><h3 id="197-Untitled-Stack-无题（堆叠）1967（Donald-Judd-唐纳德·贾德）">197. Untitled (Stack)  无题（堆叠）1967（Donald Judd, 唐纳德·贾德）</h3><p><a href="https://www.moma.org/collection/works/81324?locale=en">作品链接</a></p><p><img src="BAEB2CEAFEF64D31AF22D7D26D0B2629.png.webp" alt=""></p><h3 id="198-The-Marriage-of-Reason-and-Squalor-II-理性与卑劣的联姻-2-1959（Frank-Stella-弗兰克·斯特拉）">198. The Marriage of Reason and Squalor, II 理性与卑劣的联姻 2 1959（Frank Stella, 弗兰克·斯特拉）</h3><p><a href="https://www.moma.org/collection/works/80316">作品链接</a></p><p><img src="B7180E6406E24F23B0A8335D151493BA.png.webp" alt=""></p><h3 id="199-Hyena-Stomp-鬣狗爵士舞-1962（Frank-Stella-弗兰克·斯特拉）">199. Hyena Stomp 鬣狗爵士舞 1962（Frank Stella, 弗兰克·斯特拉）</h3><p><a href="http://www.tate.org.uk/art/artworks/stella-hyena-stomp-t00730">作品链接</a></p><p><img src="DA37AE29CAE0401F842FD89DB8E36539.png.webp" alt=""></p><h3 id="200-144-Magnesium-Square-144块镁方砖-1969-（Carl-Andre-卡尔·安德烈）">200. 144 Magnesium Square 144块镁方砖 1969 （Carl Andre, 卡尔·安德烈）</h3><p><a href="http://www.tate.org.uk/art/artworks/andre-144-magnesium-square-t01767">作品链接</a></p><p><img src="553D626346AB4C088D3C09F56EA76E8B.png.webp" alt=""></p><h3 id="201-“monument”-1-for-V-Tatlin-献给-V·塔特林之纪念碑-1-1964（Dan-Flavin-丹·弗莱文）">201. “monument” 1 for V. Tatlin 献给 V·塔特林之纪念碑 1 1964（Dan Flavin, 丹·弗莱文）</h3><p><a href="https://www.moma.org/collection/works/81337?locale=en">作品链接</a></p><p><img src="A7FDD780F23C4EDB9CD89EC907E3C594.png.webp" alt=""></p><h3 id="202-Serial-Project-I-ABCD-序列工程-1-（ABCD）-1966-（Sol-LeWitt-索尔·勒维特）">202. Serial Project, I (ABCD) 序列工程 1 （ABCD） 1966 （Sol LeWitt, 索尔·勒维特）</h3><p><a href="https://www.moma.org/collection/works/81533?locale=en">作品链接</a></p><p><img src="40070AAE739D422F83C38543FA1B3867.png.webp" alt=""></p><h2 id="19-后现代主义：假身份，1970—1989">19 后现代主义：假身份，1970—1989</h2><h3 id="203-550-Madison-Avenue-麦迪逊大道550号-1984（Philip-Johnson-and-John-Burgee-菲利普·约翰逊，约翰·伯奇）">203. 550 Madison Avenue 麦迪逊大道550号 1984（Philip Johnson and John Burgee, 菲利普·约翰逊，约翰·伯奇）</h3><p><a href="https://en.wikipedia.org/wiki/550_Madison_Avenue">作品链接</a></p><p><img src="Sony_Building_by_David_Shankbone_crop.jpg.webp" alt=""></p><h3 id="204-Untitled-Film-Still-21-无题电影剧照-21-1978（Cindy-Sherman-辛迪·舍曼）">204. Untitled Film Still #21 无题电影剧照 #21 1978（Cindy Sherman, 辛迪·舍曼）</h3><p><a href="https://www.moma.org/collection/works/56618?locale=en">作品链接</a></p><p><img src="50C1C3B65AEE4A6ABF889754E6914475.png.webp" alt=""></p><h3 id="205-The-Destroyed-Room-损毁的房间-1978（Jeff-Wall-杰夫·沃尔）">205. The Destroyed Room 损毁的房间 1978（Jeff Wall, 杰夫·沃尔）</h3><p><a href="http://www.tate.org.uk/whats-on/tate-modern/exhibition/jeff-wall/jeff-wall-room-guide/jeff-wall-room-guide-room-1">作品链接</a></p><p><img src="7820562872EC46EB989B1F3044B21047.png.webp" alt=""></p><h3 id="206-The-Death-of-Sardanapalus-萨丹纳帕鲁斯之死-1827（Eugene-Delacroix-欧仁·德拉克罗瓦）">206. The Death of Sardanapalus 萨丹纳帕鲁斯之死 1827（Eugène Delacroix, 欧仁·德拉克罗瓦）</h3><p><a href="https://en.wikipedia.org/wiki/The_Death_of_Sardanapalus">作品链接</a></p><p><img src="ED634EB4D4C74FFE8DF45ED55E9D28A3.png.webp" alt=""></p><h3 id="207-Mimic-模拟-1982（Jeff-Wall-杰夫·沃尔）">207. Mimic 模拟 1982（Jeff Wall, 杰夫·沃尔）</h3><p><a href="http://www.tate.org.uk/whats-on/tate-modern/exhibition/jeff-wall/jeff-wall-room-guide/jeff-wall-room-guide-room-3">作品链接</a></p><p><img src="E11B07D132404858A2E9516E06394340.png.webp" alt=""></p><h3 id="208-Paris-Street-Rainy-Day-巴黎街道：雨天-1877（Gustave-Caillebotte-古斯塔夫·卡耶博特）">208. Paris Street; Rainy Day 巴黎街道：雨天 1877（Gustave Caillebotte, 古斯塔夫·卡耶博特）</h3><p><a href="https://en.wikipedia.org/wiki/Paris_Street;_Rainy_Day">作品链接</a></p><p><img src="01398D0665274930B4529633AB276F02.png.webp" alt=""></p><h3 id="209-Untitled-I-shop-therefore-I-am-无题（我买故我在）-1987（Barbara-Kruger-芭芭拉·克鲁格）">209. Untitled (I shop therefore I am) 无题（我买故我在） 1987（Barbara Kruger, 芭芭拉·克鲁格）</h3><p><a href="https://www.wikiart.org/en/barbara-kruger/untitled-i-shop-therefore-i-am-1987">作品链接</a></p><p><img src="964E44A3BB054E54934D084821B86D91.png.webp" alt=""></p><h3 id="210-Untitled-Your-body-is-a-battleground-无题（你的身体是战场）1989（Barbara-Kruger-芭芭拉·克鲁格）">210. Untitled (Your body is a battleground)  无题（你的身体是战场）1989（Barbara Kruger, 芭芭拉·克鲁格）</h3><p><a href="https://www.artsy.net/artwork/barbara-kruger-untitled-your-body-is-a-battleground-1">作品链接</a></p><p><img src="71A1F4C5F5A94C21A9467E06512695CF.png.webp" alt=""></p><h3 id="211-Untitled-You-Invest-in-the-Divinity-of-the-Masterpiece-无题（你投资杰作之神圣性）1982（Barbara-Kruger-芭芭拉·克鲁格）">211. Untitled (You Invest in the Divinity of the Masterpiece) 无题（你投资杰作之神圣性）1982（Barbara Kruger, 芭芭拉·克鲁格）</h3><p><a href="https://www.moma.org/collection/works/79334">作品链接</a></p><p><img src="4D8E185753A64ACE9CA6C083AED0FE94.png.webp" alt=""></p><h3 id="212-How-to-Work-Better-怎么更好工作-1991（Peter-Fischli-David-Weiss-彼得·弗施利与大卫·韦斯）">212. How to Work Better 怎么更好工作 1991（Peter Fischli &amp; David Weiss, 彼得·弗施利与大卫·韦斯）</h3><p><a href="https://www.moma.org/collection/works/222300?locale=en&amp;recent_acquisitions=1">作品链接</a></p><p><img src="E7970A2F9B6C4D73A8BE62C7ADB2E983.png.webp" alt=""></p><h3 id="213-Tips-for-Artists-Who-Want-to-Sell-给想卖作品的艺术家的建议-1966-1968-（John-Baldessari-约翰·巴尔代萨里）">213. Tips for Artists Who Want to Sell 给想卖作品的艺术家的建议 1966-1968 （John Baldessari, 约翰·巴尔代萨里）</h3><p><a href="https://www.thebroad.org/art/john-baldessari/tips-artists-who-want-sell">作品链接</a></p><p><img src="05B19F2132A94EE78A79B85BCFBE0F46.png.webp" alt=""></p><h3 id="214-Heel-脚后跟-1986-（John-Baldessari-约翰·巴尔代萨里）">214. Heel 脚后跟 1986 （John Baldessari, 约翰·巴尔代萨里）</h3><p><a href="https://theartstack.com/artist/john-baldessari/heel">作品链接</a></p><p><img src="9EC82C502D05400DB363B7A3E63005B8.png.webp" alt=""></p><h3 id="215-The-Way-Things-Go-天衣无缝的连锁反应-1987（Peter-Fischli-David-Weiss-彼得·弗施利与大卫·韦斯）">215. The Way Things Go 天衣无缝的连锁反应 1987（Peter Fischli &amp; David Weiss, 彼得·弗施利与大卫·韦斯）</h3><p><a href="https://en.wikipedia.org/wiki/The_Way_Things_Go">作品链接</a></p><p><img src="DC20C0C2DF9E47F1ACCF083F309D90AA.png.webp" alt=""></p><h2 id="20-今日艺术：名利场，1988—2008至今">20 今日艺术：名利场，1988—2008至今</h2><h3 id="216-Made-in-Heaven-天堂制造-1989（Jeff-Koons-杰夫·昆斯）">216. Made in Heaven 天堂制造 1989（Jeff Koons, 杰夫·昆斯）</h3><p><a href="http://www.jeffkoons.com/artwork/made-in-heaven">作品链接</a></p><p><img src="2D6B76A3051C47D98DD87282064DBEF5.png.webp" alt=""></p><h3 id="217-Spot-Painting-现场画-1986（Damien-Hirst-达米恩·赫斯特）">217. Spot Painting 现场画 1986（Damien Hirst, 达米恩·赫斯特）</h3><p><a href="http://www.damienhirst.com/spot-painting">作品链接</a></p><p><img src="941FC36F639542359DE2C84825BC02F8.png.webp" alt=""></p><h3 id="218-A-Thousand-Years-一千年-1990-（Damien-Hirst-达米恩·赫斯特）">218. A Thousand Years 一千年 1990 （Damien Hirst, 达米恩·赫斯特）</h3><p><a href="http://www.damienhirst.com/a-thousand-years">作品链接</a></p><p><img src="B1A065338A6B498C94FE151AC0B8AC53.png.webp" alt=""></p><h3 id="219-The-Physical-Impossibility-of-Death-in-the-Mind-of-Someone-Living-生者对于死亡无动于衷-1991（Damien-Hirst-达米恩·赫斯特）">219. The Physical Impossibility of Death in the Mind of Someone Living 生者对于死亡无动于衷 1991（Damien Hirst, 达米恩·赫斯特）</h3><p><a href="http://www.damienhirst.com/the-physical-impossibility-of">作品链接</a></p><p><img src="75655B30C05F410697013E1BE61BF492.png.webp" alt=""></p><h3 id="220-Self-自己-1991（Marc-Quinn-马克·奎恩）">220. Self 自己 1991（Marc Quinn, 马克·奎恩）</h3><p><a href="http://marcquinn.com/artworks/single/self-1991">作品链接</a></p><p><img src="7A129C7F802441A59061E2B9264DBA78.png.webp" alt=""></p><h3 id="221-Myra-迈拉-1995-（Marcus-Harvey-马克斯·哈维）">221. Myra 迈拉 1995 （Marcus Harvey, 马克斯·哈维）</h3><p><a href="https://en.wikipedia.org/wiki/Myra_(painting)">作品链接</a></p><p><img src="338739803AB74D48BCF5E2927A2BF240.png.webp" alt=""></p><h3 id="222-For-the-Love-of-God-献给上帝的爱-2007（Damien-Hirst-达米恩·赫斯特）">222. For the Love of God 献给上帝的爱 2007（Damien Hirst, 达米恩·赫斯特）</h3><p><a href="http://www.damienhirst.com/for-the-love-of-god">作品链接</a></p><p><img src="9FD97E0F90E446DE87D175FCD0D0A41E.png.webp" alt=""></p><h3 id="223-Two-Fried-Eggs-and-a-Kebab-两个煎鸡蛋和一根烤肉串-1992（Sarah-Lucas-莎拉·卢卡斯）">223. Two Fried Eggs and a Kebab 两个煎鸡蛋和一根烤肉串 1992（Sarah Lucas, 莎拉·卢卡斯）</h3><p><a href="http://www.saatchigallery.com/artists/artpages/sarah_lucas_2.htm">作品链接</a></p><p><img src="003E65775B5843E1A6E5E0B709BFB07F.png.webp" alt=""></p><h3 id="224-Au-Naturel-裸体-1994（Sarah-Lucas-莎拉·卢卡斯）">224. Au Naturel 裸体 1994（Sarah Lucas, 莎拉·卢卡斯）</h3><p><a href="http://www.saatchigallery.com/artists/artpages/sarah_lucas_1.htm">作品链接</a></p><p><img src="82660A913DD04DFFA37C1E7DA5748F61.png.webp" alt=""></p><h3 id="225-Everyone-I-Have-Ever-Slept-With-1963–1995-1963至1995年曾经和我睡在一起的每一个人-1995-（Tracey-Emin-翠西·艾敏）">225. Everyone I Have Ever Slept With 1963–1995 1963至1995年曾经和我睡在一起的每一个人 1995 （Tracey Emin, 翠西·艾敏）</h3><p><a href="https://en.wikipedia.org/wiki/Everyone_I_Have_Ever_Slept_With_1963%E2%80%931995">作品链接</a></p><p><img src="CB9BD52C3FC44A10B351ADC15F84680A.png.webp" alt=""></p><h3 id="226-My-Bed-我的床-1998-（Tracey-Emin-翠西·艾敏）">226. My Bed 我的床 1998 （Tracey Emin, 翠西·艾敏）</h3><p><a href="https://en.wikipedia.org/wiki/My_Bed">作品链接</a></p><p><img src="0CD0B5E1EA1D4B58985FE3DB17F0A228.png.webp" alt=""></p><h3 id="227-Hotel-International-国际酒店-1993（Tracey-Emin-翠西·艾敏）">227. Hotel International 国际酒店 1993（Tracey Emin, 翠西·艾敏）</h3><p><a href="https://www.artsy.net/artwork/tracey-emin-hotel-international">作品链接</a></p><p><img src="7167178F62A1409B987714AD66B57D9C.png.webp" alt=""></p><h3 id="228-Tea-Painting-in-an-Illusionistic-Style-透视风格的茶画-1961（David-Hockney-大卫·霍克尼）">228. Tea Painting in an Illusionistic Style 透视风格的茶画 1961（David Hockney, 大卫·霍克尼）</h3><p><a href="http://www.tate.org.uk/art/artworks/hockney-tea-painting-in-an-illusionistic-style-t07075">作品链接</a></p><p><img src="C0424E0D15C64CAE88949DB37CE20FD1.png.webp" alt=""></p><h3 id="229-Victory-Boogie-Woogie-胜利之舞-1942-1943（Piet-Mondrian-皮埃特·蒙特里安）">229. Victory Boogie Woogie 胜利之舞 1942-1943（Piet Mondrian, 皮埃特·蒙特里安）</h3><p><a href="https://en.wikipedia.org/wiki/Victory_Boogie_Woogie">作品链接</a></p><p><img src="0B0CB86551EC4AC79C1EE58843400410.png.webp" alt=""></p><h3 id="230-Woman-III-妇女-3-1953（Willem-de-Kooning-威廉·德·库宁）">230. Woman III 妇女 3 1953（Willem de Kooning, 威廉·德·库宁）</h3><p><a href="https://en.wikipedia.org/wiki/Woman_III">作品链接</a></p><p><img src="3CDD0976925344069F01A584CA1598F4.png.webp" alt=""></p><h3 id="231-Miss-ko²-ko小姐-1997（Takashi-Murakami-村上隆）">231. Miss ko² ko小姐 1997（Takashi Murakami, 村上隆）</h3><p><a href="https://www.wikiart.org/en/takashi-murakami/miss-ko-1997">作品链接</a></p><p><img src="D5E365DEEBA444659DC7775925DF3143.png.webp" alt=""></p><h3 id="232-Hiropon-1997-（Takashi-Murakami-村上隆）">232. Hiropon 1997 （Takashi Murakami, 村上隆）</h3><p><a href="http://www.artnet.com/artists/takashi-murakami/hiropon-dMN_9UQNrw4mGMprXpeWBg2">作品链接</a></p><p><img src="2D1381E4312E430BAEA0FC0C44263F59.png.webp" alt=""></p><h3 id="233-My-Lonesome-Cowboy-我的寂寞牛仔-1998-（Takashi-Murakami-村上隆）">233. My Lonesome Cowboy 我的寂寞牛仔 1998 （Takashi Murakami, 村上隆）</h3><p><a href="https://www.wikiart.org/en/takashi-murakami/my-lonesome-cowboy-1998">作品链接</a></p><p><img src="0BD9DE5C983C4B40AD7101450607F97D.png.webp" alt=""></p><h3 id="234-The-Nighmare-噩梦-1781-（Henry-Fuseli-亨利·富塞利）">234. The Nighmare 噩梦 1781 （Henry Fuseli, 亨利·富塞利）</h3><p><a href="https://en.wikipedia.org/wiki/The_Nightmare">作品链接</a></p><p><img src="John_Henry_Fuseli_-_The_Nightmare.jfif.webp" alt=""></p><h3 id="235-摔破一个汉代陶罐-Dropping-a-Han-Dynasty-Urn-1995（Ai-Weiwei-艾未未）">235. 摔破一个汉代陶罐 Dropping a Han Dynasty Urn 1995（Ai Weiwei, 艾未未）</h3><p><a href="https://www.artsy.net/artwork/ai-weiwei-dropping-a-han-dynasty-urn-1">作品链接</a></p><p><img src="4DFF730A349E4A84BC67A915841169DD.png.webp" alt=""></p><h3 id="236-Barack-Obama-“Hope”-Poster-贝拉克·奥巴马“希望”海报-2008-（Shepard-Fairey-谢泼德·费尔雷）">236. Barack Obama “Hope” Poster 贝拉克·奥巴马“希望”海报 2008 （Shepard Fairey, 谢泼德·费尔雷）</h3><p><a href="https://www.artic.edu/artworks/229396/barack-obama-hope-poster">作品链接</a></p><p><img src="barack-obama-hope-poster.jpg.webp" alt=""></p><h3 id="237-Maid-Sweeping-正在清扫的女佣-2006-（Banksy-班克斯）">237. Maid Sweeping 正在清扫的女佣 2006 （Banksy, 班克斯）</h3><p><a href="https://banksy.co.uk/out.asp">作品链接</a></p><p><img src="023_mil.jpg.webp" alt=""></p>]]>
    </content>
    <id>https://editst.com/2021/150-years-of-modern-art/</id>
    <link href="https://editst.com/2021/150-years-of-modern-art/"/>
    <published>2021-07-10T09:21:03.000Z</published>
    <summary>
      <![CDATA[<p>来自<a href="https://book.douban.com/review/8930999/">豆瓣网友</a>，原文在有道云笔记，为方便浏览转载至此。</p>
<p>现代艺术 150 年全书提及的作品图集，按书本出现顺序，来源为 Wiki, MoMA 和泰特的官网等，大部分附有链接，在原文基础增加了部分作品，替换了部分图片。所有图片已经压缩，如需高清图片可以前往<a href="https://github.com/Editst/150-Years-of-Modern-Art"> GitHub 存储库</a>查看。</p>]]>
    </summary>
    <title>现代艺术 150 年</title>
    <updated>2022-11-15T16:12:59.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="转载" scheme="https://editst.com/categories/%E8%BD%AC%E8%BD%BD/"/>
    <category term="新冠病毒" scheme="https://editst.com/tags/%E6%96%B0%E5%86%A0%E7%97%85%E6%AF%92/"/>
    <category term="何伟" scheme="https://editst.com/tags/%E4%BD%95%E4%BC%9F/"/>
    <content>
      <![CDATA[<p>作者：Peter Hessler(何伟)，<a href="https://www.newyorker.com/magazine/2020/10/12/nine-days-in-wuhan-the-ground-zero-of-the-coronavirus-pandemic">原载《纽约客》</a>，2020年10月5日</p><p>翻译：anobody</p><p>在我二度造访位于武汉市中心新华路和发展大道交叉路口处的原华南海鲜批发市场时，我戴上了口罩及一付镜架松动的太阳镜。时值八月下旬，市场入口处坐着三名着黑色制服的保安。在对我查验护照和测量体温后，他们要我扫描一个二维码，以连接到一个登记系统。然而该登记系统却只接受中国的居民身份证号码，这些保安似乎拿不准该如何对待一个外国人。我递上那付太阳镜并解释说它需要修理。</p><p>最早记录到的新冠感染群发性病例就发生在华南市场。一周前我曾首次尝试进入该市场，不料引起貌似便衣警察的一名男子的注意，只好无功而返。该市场仍属敏感地点，一楼曾经病毒肆虐的那些摊位早已被建起的蓝色高墙封堵。不过市场二楼仍在营业，这也就是我此番再来要带上那付太阳镜的原因。</p><p>一名保安检查了我那副镜架松动的太阳镜。“你可以进去，” 他终于发话说，“但不许拍照。”</p><p>另一名保安则被指派伴我同行。我俩爬上一段很陡的楼梯，经过一个新漆好的招牌&quot;和光眼镜市场&quot;。去年12月它还叫&quot;华南眼镜市场&quot;，与一楼的海鲜批发市场同名。</p><p>华南市场的这种组合毫无逻辑可言：楼下卖鱼鲜，楼上卖眼镜。当地人告诉我，这是大约15年前一批眼镜批发商人被这里的廉价租金吸引的缘故。自那以后鱼鲜和眼镜市场竟然和谐并存，直到去年12月的最后一天，武汉市卫健委发布公告证实了之前的一系列传言。那份公告提到科研人员正对与海鲜市场有27人感染一类不明原因&quot;病毒性肺炎&quot;的病例进行调查。不过传递出来的讯息总的调子是要安抚人心：“目前尚未发现人传人的明显证据，也无医疗人员受到感染。”</p><p>而事实上，武汉的医生们已见到有同事开始发病。在公告发布的前一天，一位名叫李文亮的眼科医生在其医学院同学微信群中发出了一系列警示。有人把李的微信讯息截屏发到了网上，当天晚上就有卫生官员将李招去问话。几天后，警方迫使李文亮签署悔过书承认自己发出警示构成&quot;非法行为&quot;.</p><p>此时，政府已关闭了楼下的市场。一楼市场有超过一千个摊位，除了海鲜，还卖淡水鱼及肉类，还有些专卖活体野生动物。到了元旦那天，有身穿防化服的工作人员到场取样并对市场的某些部位开展消毒处理。不过楼上眼镜市场仍在营业。再过了10天政府关闭了二楼的市场；12天以后，武汉全市已处于隔离检疫状态；自那以后的两天之内，几乎所有省份都宣布了进入公共卫生一级应急响应状态。可到了这个时间节点病毒已传播到了全世界——在源头将其切断已变得不再可能。从那以后，中国政府就有关华南市场及疾病可能源头所公布的信息变得极少。</p><span id="more"></span><p>作为内陆省份湖北省省会的武汉市有1,100万居民。再没有第二个国家像中国这样，疫情大流行所造成的影响如此集中在某一个城市，而其他所有地区相对来说未受到大的波及。这是时机和对策相结合的结果：因为疫情首先在武汉蔓延，在最初掩盖真相和其它失策之后紧接着采取了有效的全国性对策，这使得武汉遭受的苦难独一无二。截至此时，北京市共报告了9起新冠死亡病例，比上海市多出两例。而在人口达一亿一千三百万的广东省，致死人数是8人。而中国疫情严重程度排名第二的城市对绝大多数外人来说则是闻所未闻：在距离武汉大约40英里之遥的孝感，共有129人病亡。</p><p>在武汉，官方所公布的死亡数字为3,869人，不过许多人相信实际死亡人数比这要高得多。为数不少的写作者以网上日志的形式记录下了疫情隔离期间的情况，其中最著名的当属方方这名年已六旬小说家所写的&quot;武汉日记&quot;。作为在武汉生活了一辈子的居民，方方常常思考疫情给她家乡带来的后果，她也因此经常成为共产党进行内容审查的靶子。3月4日，她曾在日记里考虑过华南市场的未来，“有人建议将它改建为一座灾难纪念堂，” 她先是如此写道，接下来可能意识到内容审查员的存在，又话锋一转：“不过今天我只想谈谈购物。”</p><p>再回到眼镜市场，保安陪着我沿两旁都是店铺的一条长长过道往前走。我没见到有其他顾客，我俩经过这些店铺时，总有推销者冲到门口，喊着打折优惠。过了一会，我走进了一家店子，店主是位看起来很友善的中年男子。保安则在门外等着我。</p><p>店主请我坐下还递上一杯水让我喝，他的帮工则在摆弄我那副太阳镜。看到店主并未戴口罩，我也把口罩摘了下来。我问他生意如何，他说因全市封锁他在家中一直待到4月8日，而市场于5月12日重开——与我在武汉遇到的其他人一样，他很轻易就能记起今年春季以来诸多事件的具体日期。“我试着给各位老客户打电话，告诉他们现在安全了，” 他说，“不过当然他们很多人还是不愿意过来。”</p><p>这位店主说眼镜市场里他所认识的人中间没有人感染病毒。他那位帮工，一位二十几岁的年轻女性则声称整个二楼都没有出现感染病例。“不像楼下，” 她说，“病毒是在那里流传的。” 后来我读到一篇文章说眼镜市场也有一些员工被感染，不过那篇报道缺乏细节，我拿不准应该信谁的。我也在想，如果你去到任何事件的事发地点再爬上一截楼梯，人们准定都会这样告诉你：这里什么也不曾发生。问题不在我们。出事的是楼下那些人。</p><p>店主提到了楼下海鲜市场里有一个非法麻将馆。“我听说有当时有四个人在玩麻将，结果四个人全都感染了，”</p><p>这听上去像是另一则谣传，不过后来我遇到了曾采访过那家麻将馆的一名武汉记者。他的记忆同样有准确的日期作为佐证：他告诉我他在12月31日海鲜市场关闭的前一天曾去过那里。当时，这名记者已经听说了可能有病毒的消息，以及与麻将馆感染相关的传闻。他发现那些麻将玩家们并未被这些传言吓到，仍在为着些小钱赌着输赢。“那(麻将馆)开在一间密室里，” 这名记者说。就像我在武汉采访到的许多人一样，他要求匿名。他继续说道：“它挨着一间公共厕所，要进去还得先爬一节梯子。如果不是刻意去找你根本就发现不了它。” 这名记者在当时的报道中没有提到麻将馆的感染，部分是因为那个时候当地政府尚未宣布疾病可由人际接触传染。“不过我私下里担心它会人传人，” 他回忆说。他当时并未戴口罩，虽则预先在附近一家药店买了一些。</p><p>这名记者在第二天也就是元旦那天防化队员到场以后又再次来到市场。他见到防化队员们比照着一张详细的项目表开展检查并对某些摊位进行消毒处理，但他们不肯回答他有关检查消毒目的的提问。随后针对市场内部情况发布了一些图片，但数量相对较少，也未见有正式报告出炉。时至今日，全球新冠感染病例已达3,500万起且还在继续增加，而在中国政府方面几乎完全缄口不言的情况下，华南市场已成为各种想象和揣测的温床。在中国，一个常见的阴谋论声称是美军趁去年10月在武汉举行2019年世界军人运动会之机播撒下了病毒。而在世界的另一端，则有不少美国人相信病毒是由研究对象包括冠状病毒在内的武汉病毒研究所有意或无意释放出来的。</p><p>然而并无证据支持这些论调，即便是人们普遍相信的动物市场这一联系也并未弄清楚。该市场内贩卖野生动物的经营户并不多——根据大部分的公开报道，一共约有十来个摊位——武汉本地居民也并不特别嗜好野味。这类菜肴在更南边的广东省才更受欢迎。有可能病毒是来自别处，只不过在卖鱼摊位的潮湿阴冷条件下才得以传播开来。有几位武汉居民告诉我当地海鲜供应有相当一部分来自广东，他们觉得有可能是病毒随着鱼货由一名南方人不经意带来的。不过就像诸多其它有关病毒来源的说法一样，这也许是&quot;二楼视角&quot;的另一种版本：这里什么也不曾发生。问题不在我们。是楼下那些人的事。</p><p>在眼镜市场，在店门外等候我的那名保安开始有点烦躁不安。仍未见有其他顾客光临。店主拒绝为修理我的太阳镜收费，对此我感到过意不去，因而干脆花了15元又买了一付新太阳镜。我问起此地将来可能的命运，他说还没有最终决定，不过他预计整座建筑会被拆掉。“他们还能怎么做？” 他说，“市场名声已经毁了，他们会把它拆掉再建高楼。”</p><p>在武汉居民言谈间所提到的日期当中，最经常出现的是1月23日，在这一天武汉全城开始进入隔离检疫状态，再就是4月8日这一解除封锁的日子。疫情大流行期间所有中国城市都处于严格封锁之下，不过武汉的封闭是独一无二的：除开某些持外国护照者，该市人员一律不得离开。民众对此阶段有一套自己的词汇来描述。他们提到&quot;封城&quot;——字面意思是&quot;把整个城市给封禁起来&quot;——而4月8日则是&quot;解封&quot;的日子——“解除封禁”。</p><p>因病毒而陷入隔离的经历让这些日期深深地烙印在人们的头脑之中。在封城期间笔名为&quot;小引&quot;的一位武汉诗人在他每日于微博(中国版推特)发布的日志里常把自己的城市描述为&quot;一座孤岛&quot;。他每条日志开头几乎一样：“我在武汉。今天是封城的第_天。” 与方方一样，小引关注的日期也是12月31日，也即卫健委发布公告的这一天，以及1月20日，在这一天中国最知名医学权威之一的肺科医生钟南山称新冠有可能经由人际传播，是首位作此宣称的医疗官员。</p><p>而这两种说法之间无法解释的差异——期间相隔了整整三周时间——激怒了像小引和方方这样的人。这也可能是人们记住这些日期的另一个原因：它们是代表了信息不确定且不可靠那段时期的时间节点。方方日记里最突出的特质之一是她努力要凭自己在武汉生活一辈子建立起来的各种人脉，将得自未披露姓名的医生、科学家、政府官员及警察的信息传递出来。时至今日，即便人们对病毒所知比当时已多了许多，当初方方对疫情的大部分估计也仍是准确和合理的。她从未把自己视为持不同政见者，而当政府政策正确有效时她也及时予以赞扬。她反映出了中国的一个悖论：即使在一个有着严格审查制度的专制国家里，仍然存在着许多教育程度很高的人群，其公民逐渐变得善长推断分辨出可靠的消息来源。方方的微博发帖吸引到的阅读量有时超过了三千万次，而即便这些信息遭到审查屏蔽，人们通常也总能找到其它途径加以传播。</p><p>在2月19日，方方注意到了有相当数量的疫情早期死亡是在未得到适当的检测和诊断之前发生的。“所以我担心，真实死亡人数的统计汇总并不全面准确，” 她写道。</p><p>在武汉一家大型医院负责新冠检测的一位传染科医生告诉我，实际死亡人数可能比官方公布数字3,869人要高出三到四倍。他提到疫情大流行早期的混乱状况，当时承压过大的各大医院都不再接受新的患者入院治疗。“如果你已被感染而又得不到确诊，那么你就不会被计算在内，” 他说，“我想死亡总数可能过万了。”</p><p>在中国其他地区，总的来说人们相信本地所报告的死亡统计是准确的，至少会处于一个合理区间内。要掩盖疫情并非那么容易：若病毒在某一社区广泛蔓延，居民们迟早总会知晓的。但是武汉有所不同，这是因它在疫情开始阶段所扮演的角色所致。在城里，我遇到一位名叫凯尔·许的建筑师，他的继母是早期死亡病例之一。她65岁，健康状况良好，与华南市场也并无干系。许并不清楚她是如何被感染的，不过他家其他亲属也开始陆续染病。到后来可以开展病毒检测之后，这些亲戚中有一些被确认新冠病毒检测呈阳性。</p><p>许自十来岁起就由其继母拉扯带大，他说他们母子之间的密切关系与任何亲子关系并无不同。他回忆起与自己相关的一系列日期：她继母于1月4日开始生病；到了1月11日，一家已人满为患的医院拒绝收治她；到了1月13日，她才得以被收治入院。但她在两天后病故。</p><p>“1月18日，她被送到了火葬场，” 辉说道，“我也跟着去了，在那里我见到一些员工带着口罩和手套，还穿着防护服。” 他继续说道，“在那时，还没有多少有关疾病传播的新闻报道，但是医院工作人员都知道了，火葬场员工也知道。” 他说火葬场很忙碌，他在那儿也遇到了另一家人，其家人死于类似流感的疾病。而那时武汉市官方公布的死亡人数仅为一人。</p><p>许是武汉本地人，不过他目前生活在靠近上海的江苏省。在继母过世后，他带着同是武汉本地人的岳父母回到了江苏。他们碰巧是在正式封城前夕离开的武汉，但在江苏他们也经历了另一种版本的封城。来自共产党组织结构中最基层的居委会官员要求近期去过湖北省的所有人都要实行为期14天的隔离检疫。他们将许的家门从外面用胶带封住，上面写有&quot;从湖北返家居民居家隔离&quot;字样。封门胶带只有在居委会人员给他们送食品或是收集垃圾时才被揭开。</p><p>最初，许与居委会官员之间曾发生愤怒的冲突。他们告诉他如果不让封门的话他和他的岳父母将被送到一处政府隔离检疫场所。许最后决定还是待在自己家里更好一些，而随着时间的推移他也开始相信这样严格的应对政策是必要的。追踪与湖北的人员往来联系是一项关键的早期对策；在我位于成都的家中，当地居委会人员和志愿者曾经五次登门。每次他们都问及近期是否去过武汉或是湖北，他们就是以这种方法追踪到了我所住小区的唯一病例。一位居民最近刚从湖北返家，居委会找到了他，对他进行了检测，然后加以隔离，而这一切都发生在他出现发病症状之前。</p><p>“从大的方面来讲，这样做是对的，” 许说到。但他也提到，见证过武汉早期失误的那些人肯定会与大部分中国人在感觉上有所不同。“在每一个统计数字背后，都有一个破碎的家庭，” 他说。“因此我说不出对政府是满意还是不满意。”</p><p>在我与许见面时，他正出差回到武汉。这是他在继母火化后首次返汉。今年早些时候，他曾致电武汉市长热线和武汉当地的中国疾控中心，希望将他继母纳入新冠死亡统计数字之中。但官员们回应说这不可能，因为她的死亡证书上列明的死因是肺炎。许到现在还没把奶奶已过世的消息告诉他七岁的儿子。“我父亲想要告诉他，但我们还没想好该如何跟他说，” 他说。自一月份起，他们都假装孩子的奶奶是在武汉生病了，打不了电话。在春节假期中，他们给了他一个传统的红包并说那是奶奶送给他的。过了一阵子孩子停止了发问。“我想他已知道了真相，” 许说道。</p><p>武汉封城时，这种隔离策略在全市范围内得到复制。居民小区被封锁并由居委会负责监督，居民只有在购买必需品时才准许外出。封城第一个月近结束时，封锁措施进一步加紧，这时几乎所有生活物品都从外边运进来。2月17日，方方在日记中写道：“现在所有人都必须整天待在家中不准外出。” 像其他武汉记录者一样，她常常提到吃的，因为这时已很难吃到种类繁多的食品。</p><p>与此同时，大约有一万名接触追踪者正在市内行动，以期斩断感染链，而各大医院则在忙于建设大规模的检测系统。但人员隔离仍然最为关键：患者被隔离；疑似病毒接触者被隔离；医务人员被隔离。一名护士告诉我说，她自2月3日离家后直到6月7日才最终回到家中。与大部分有家室的医务人员一样，她被安排住在旅馆。有长达四个月之久，这名护士仅凭电话和微信与她丈夫和5岁大的儿子保持联系。</p><p>为了实现如此大规模的隔离，需要进行大规模的建设。我遇到了一名年轻的建筑公司经理，他所在公司负责对110处医院、诊所、学校、体育馆及其它建筑进行了相应改造。施工很大程度上涉及搭建围墙、障碍以及特别的出入口以防止人们互相接触。他所在公司也参与了火神山医院的建设，这是为收治新冠患者而专门建造的两座应急医院之一。拥有一千张床位、其中包括30张加护病床的火神山医院成为了政府大加宣传的首要对象之一，因为它是在从1月23日到2月3日大约十天之内火速建成的。一度曾有七千名工人在工地上加班加点，出动的挖掘机超过了一百台。</p><p>我姑且称他为&quot;张&quot;的那名年轻经理负责劳工的招募和监管。他告诉我说他常常想激发工人们的爱国热情，但主要还是靠付给好工钱。回忆起那段日子，他用了一句俗话&quot;有钱能使鬼推磨&quot;。 考虑到工人们所承受的风险和极长的工作时间，给不熟练技工开出几百块钱一天的工钱也很常见。张所开出过的最高周薪是付给一名木匠五万元(约合七千美元)工钱——这是正常工资的十倍。即便如此要招人还是很难，因为当时武汉死亡人数仍在激增，也因为信息缺乏把人们给吓坏了。</p><p>火神山医院是按分区设计的，在张手下的工人们还在建设医院后区时，前区已经在开始收治感染患者了。“一大帮工人逃走了，” 他说。“他们连工资都没敢来拿。” 医院刚一完工，又得转身进去修理因匆忙建设而导致的泄漏及其他问题。</p><p>到此时，张给工人们开出的工钱是一千块钱一天，可还是没人接受，哪怕他拿&quot;祖国&quot;来感召也还是无动于衷。在八月份再回顾那一时期，他的思考变得有点哲学意味：“疫情就像一面镜子，” 他说，“人可以把自己看得更清楚，好的一面和不好的一面都看得到。”</p><p>他发现唯一的解决办法就是自己亲自穿好个人防护装备然后陪伴工人们进入治疗感染患者所在的区域。&quot;我当时说，‘如果你们出了问题，那我也会出问题，’ 他回忆道，“我那样一说完，他们也就心甘情愿了。” 实际上，他当时对安全并无把握，不过好在结果工人们无人感染也让他松了一口气。</p><p>张说疫情期间的工作经历让他变得更沉稳更有耐心。他现在开车更加小心；他也不再像以前一样匆匆忙忙。我常常询问武汉居民这个春天是如何改变了他们个人，所得到的并没有标准答案。有些人表达出不再那么信任政府发出的讯息；另一些人则说他们对国家领导层的信心增强了。前面提到过的那位与家人分离的护士承认说有时她甚至怀念起危机时的简单生活，她一个人住在旅馆房间，除了工作其他啥也不想。在医院负责检测的那名医生告诉我自从解封以后他的执念是家中一定要备足食品。现如今，他家里总是备有至少60斤米、60斤面条面粉以及三十瓶罐头。“我还有五个朋友也是一样，只不过他们储备的比我还多，” 他告诉我说。</p><p>在整个湖北省，有近四百个旅游景点自8月8日开始直到年底都对游客免除门票，以期传递该省已经安全的讯息。我没遇到过来自中国其它地区的游客，不过武汉本地人好像倒是充分利用了这个机会。当我去到重建在长江边上的古代名楼黄鹤楼时，那里人满为患令人举步维艰。工作人员告诉我日接待人数的上限是两万五千人；而在那一天，网上预约系统在中午前就已订满。在湖北省博物馆，参观者要进入必须出示新冠检测阴性证明，但这并不能阻挡人群涌入。每隔约半个小时，工作人员就会用蘸了酒精溶液的蓝色抹布去使劲地揩拭装有曾属于古代湖北地方贵族珍宝的那些玻璃展柜：战国时期的曾侯乙；明朝的梁庄王。</p><p>此行我在位于长江东南岸武昌的武汉富力威斯汀酒店下榻。在办理入住手续时，一位酒店职员微笑着告诉我有特别优惠，只需一天约两毛三分钱的代价即可享受到早餐自助餐。在电梯内，一块显示屏上在不断循环地播放武汉威斯汀酒店内欢乐画面的宣传视频：一场婚庆典礼、大师傅在掌勺、宾客们在品尝着鸡尾酒。不料随后视频画风突变，画面出现来自益康化学有限公司头戴防毒面具和头盔身穿白色防化服的专业人员，携带着某种工业用途的喷洒机。他们使用类似火焰喷射器的装备，朝着酒店里的一切喷洒白色的化学消毒喷剂：前台大厅、餐厅、中央空调的管道。在一张桌子上，有人将客房门禁卡像玩扑克牌一般整齐地排排铺开，然后对着它们喷洒。伴随着这些画面的背景音乐是歌手阿曼达-诺尔所演唱的&quot;爱更伟大&quot;：周五夜晚，感觉良好，我要好好享受；举起双手，看我舞动，一切尽在掌握…</p><p>武汉最后一次报告出现本地传染病例还是在5月18日。它是中国检测最彻底的城市：在五月底，部分是出于增强信心，政府试图对每一位居民都进行病毒检测，总数达1100万人。我所遇到的出租车司机全都接受过至少两次咽拭子检测，有一对夫妇接受检测多达五次。这些出租车司机大部分并无亲友感染过病毒；开展这类咽拭子检测纯粹是市政府及出租车公司的要求。全市共有321处检测点，检测体系是如此广泛以致到6月份当北京市遭受一波疫情袭击之时，武汉各医院甚至还派出了72名工作人员驰援首都帮助开展检测。</p><p>在医院负责开展检测的那名医生告诉我说，平均说来，他所在医院每开展四万次检测还是会查出一例阳性。大部分阳性都是再度感染患者：在病毒初次来袭中被感染后，他们先是完全康复，但接下来数月之后出于某种原因再度显示出病毒症状。到目前为止，大部分阳性为无症状，这名医生也说看不出有病毒在市内蔓延的迹象。但任何时候只要医院将这类阳性结果输入政府的报告系统之中，上级部门总有人做出不予公布的决定。“我想他们是害怕会破坏信心，” 这名医生说。</p><p>在市内，有关疫情的宣传牌并不多，武汉各大报纸每天的报道标题也都是积极正面的(&quot;长江日报&quot;8月29日的头条标题是：“学生在校不必再戴口罩”)。电影院都开门营业了；酒吧和餐馆也没有对就餐人数实行限制。在汉阳的人信汇购物中心，我见到有脸上光光没戴口罩的小孩子在海洋球乐园里玩耍，这可能是地球上眼下还在完全正常营业的最后几家海洋球乐园之一，这情景似乎也值得配上头条新闻标题(“孩子们在武汉海洋球乐园里玩耍无需再戴口罩”)。</p><p>在城市的另一头，各大专院校正经历超百万学生返校的过程。武汉的大学生人数在中国城市中位居第二，仅次于广州。一天，我与小引在武汉大学校园内徜徉，小引就是在微博上以日记形式记录疫情的那位诗人，他的每条日记都是特有的开头：“我在武汉。今天是封城的第_天。”</p><p>小引在土木工程系任教，出版诗集是他的副业。他在这座校园长大，父母都曾是武大的教师。他父亲已于5月份因心脏病去世，享年63岁。“他通常每天都出去散步，但封城期间他们只好待在室内，” 小引告诉我说。他认为长期不活动或许削弱了老人的心脏功能。</p><p>在疫情期间小引暂停了诗歌的创作。他感觉此刻诗歌并非恰当的文体；他在微博上发文的语调是松散、活泼而话题广泛的。在他第二篇微博日记中，他写道自己是以一场宿醉开启封城时代的生活，因为在1月22日晚上他去了音乐家杨东家里参加一场聚会。在1月28日——“我在武汉。今天是封城的第五天”——他悼念了科比-布莱恩特之死，科比死于地球另一端的一场直升机坠机事故。在2月7日——封城第15天——小引对李文亮之死表达了悲伤和愤怒，李这名眼科医生曾就新型疾病向他的医学院同学们发出预警。在发出警讯及因此被迫签署悔过书之后不久，李在工作时被病毒感染。年仅34岁的李文亮去世，身后留下还怀着他俩第二个孩子的亡妻，这成了人们对政府早期失策愤怒的触发点。到了3月份，武汉市公安局终于向李文亮的遗属道歉，再接下来的一个月他被追认为抗疫烈士。但官方从未解释过政府究竟在何时了解到病毒可经由人际接触传播，以及为何他们推迟公布这一消息。</p><p>“应该在武汉为李文亮医生建立起一座纪念碑，” 小引在李文亮去世的第二天写道。“纪念碑应该定名为’传谣者’。”</p><p>在我与他见面时，小引说不会有中国大陆的出版社出版他的日记。“甚至连建一个纪念疫情大流行的网站都不可能，” 他说。“我并不期待他们会在武汉建一个纪念馆。”</p><p>他带着我在校园里穿行，武大校园属于中国最美丽校园之列。我俩沿着被道旁梧桐树和樟树树荫遮蔽的小径前行，小引为我指点着校园里的那些建筑，它们是1920年代由曾在麻省理工学院受训的建筑师F.H.-凯尔斯设计，将西方和中式建筑的各种元素糅合为一种高贵典雅的建筑风格。“在解封后我再回到校园时，我一个人也没见到，” 小引说，“我想到的是疫情有多么厉害。”</p><p>如今我们能见到一群群学生拖着行李穿过校门。根据学校政策，学生们非经特别申请不得外出；像其他大部分中国大学一样，武汉大学也是以封闭校园开启了秋季学期。小引对学校当局能否切实执行这项政策表示怀疑，因为诺大的校园有太多的地方可供学生们钻空子溜出去。</p><p>我俩在一家便利店前停下来想买点饮料，在此遇到了两位学医的非洲留学生。乌玛诺-苏来自佛得角，卡拉巴-姆利兹瓦则来自赞比亚。在武汉期间我遇到的为数不多的外国人中大部分来自非洲。几乎所有北美、澳洲及欧洲人士都已在疫情期间被疏散回国，常常是乘坐由其各自使领馆所安排的航班。但有些非洲留学生留了下来，苏和姆利兹瓦说在封城期间他们从没有离开过宿舍。房间被从外边封住，食品和其他必需品由大学工作人员负责送来。这两名男生说他们被照顾得很好，不过解封之后即便被可以离开宿舍了，仍不许离开校园。今天是半年多以来他们首次得到许可迈出学校大门。我问他俩想要去哪儿。</p><p>“麦当劳，” 姆利兹瓦答道。</p><p>“我可不，” 苏答称，“我想吃牛排，也许吃点鸡肉，来点烧烤类的。”</p><p>我说了一段话，大致意思是对他们而言最糟糕的日子终于过去了，苏听罢咧嘴一笑，“我们还活着，” 他说。</p><p>武汉封城的记忆犹新，可供记录的材料也还容易获得。人们有时会拿出手稿，或拿出手机把一二月份时候的照片和信息翻找出来。但我想知道这些材料中有多少会随着时间而消散。</p><p>在市内我遇到了两名20来岁并非武汉本地的中国记者。他俩在封城期间曾被派驻武汉：当时，派驻武汉进行报道的所有人都得做好长期滞留的准备。这两名记者之一是一家流媒体的主管，我姑且称他为&quot;韩&quot;，他发现政府主办的新闻机构通常来说想要战胜疫情的素材，而不是武汉居民受苦的场面。韩希望他最终能为他那些拍摄素材找到其他用途。“它会留在硬盘里，” 他一边说着一边拍了拍他的摄像机。</p><p>另一名是文字记者，我姑且叫他&quot;尹&quot;, 她则回忆起在一月份里曾短暂享受过的不寻常的报道自由。记者们报道了像李文亮这样扮演&quot;吹哨人&quot;角色的人物，也揭露了一些早期的失误，比如红十字会在分发关键医疗设备上的失败。这类问题都得到了迅速解决，尹对能以此服务社会也感到高兴。“我能体会到第四权力(指新闻媒体)的作用，” 她说。可是到了2月份，政府开始掌控疫情，同时也加紧了对媒体出版的限制。&quot; 我一个朋友说那是个非常短暂的春天，&quot; 尹说道。</p><p>自那以后，尹报道过好几个最终无法出版或完成的课题，接受她访谈的科学家和官员们也不想说得太多。“其中一人说道，‘再过十年，如果大环境有所改变，我会把我的故事都讲给你听，’” 尹告诉我说，“他知道历史会对他作出裁决，” 尹继续说道，“这些都是体制内的人，不过他们也都知道自己身处历史之中。”</p><p>尹讲述了她对一家研究所科研人员的采访，访谈中那人情绪过于沮丧当场哭了起来。他不愿回答她的采访提问，不过他说自己记下了详细的日记。她希望终有一天这类素材能重见天日。</p><p>我猜测这种情形终将发生，因为现如今保存信息的方式实在是多。随着时间推移，我们会了解更多信息，但拖延对共产党很重要。它对待历史的策略与应对疫情的策略是一致的——一段时间的隔离至关重要。贯穿整个共产党时期，有许多被隔离的历史时期：大跃进、文化大革命、围绕着天安门的大屠杀。在这每一个案例中，在最初的缄默期后都跟随着信息泄露的零星爆发。武汉最终也会遵循同一模式，不过眼下许多记忆将保留在被封锁的城市里。</p><p>在我对中国境外的科学家们进行访谈时，他们的关注焦点不在政府的早期失误上。“对那些处于疫情开始阶段的国家我倾向于采取较为宽容的看法，” 约翰斯-霍普金斯大学健康保障研究中心的流行病学专家詹尼佛-努佐在接受我电话采访时如是说。据她的说法，对这种特殊的病毒要做到在源头阻止其蔓延对任何国家来说都是不现实的。“我一直相信病毒肯定会蔓延开来，” 她说。</p><p>哥伦比亚大学全球卫生研究中心(ICAP)的主任瓦法-萨德尔指出中国科学家迅速地对病毒进行了基因组测序，并在1月11日就向全世界科研人员开放。“我真的相信他们在武汉遇到了极为糟糕的形势，而他们最终成功做到了围堵疫情，” 她说。“早期是有错误，但他们确实采取了行动，分享信息也很迅速。”</p><p>萨德尔的职业生涯主要围绕在美国、非洲及其他地区防治艾滋病。在历经多年研究之后，科学家们最终达成共识，HIV病毒的传播最有可能是起始于野味交易——首位人类感染者很可能是在与灵长类动物或其肉类接触后被感染的。萨德尔把新冠疫情视为人类对自然界进行蚕食所带来的另一个必然后果。“目前我们正处在病毒由动物向人类寄主转移的两类并存的大规模疫情之中，HIV和COVID疫情同时在流行，” 她在给我的电子邮件中写道。“人类历史上还从未经历过规模和范围如此之大的疫情。”</p><p>现在有一种倾向，即相信若当时中国人更坦诚的话，或是若他们没有在对华南市场的摊位和动物调查清楚之前就急于清理打扫的话，我们就会了解新冠病毒的源头。但是曾与武汉病毒研究所合作研究蝙蝠寄主冠状病毒长达16年之久的英国疾病生态学家彼得-达斯扎克告诉我，从病毒最初爆发地点采集不到好的数据是常态。一旦有人发病，地方当局不可避免地要专注于公共卫生紧急状态。“你派去的是治疗人类疾病的医生，而非兽医，” 他在电话采访中说。“而医生的自然反应是清理市场。他们想要阻断感染。”</p><p>达斯扎克相信在武汉疫情爆发之前病毒已经流传达数周之久了，他也怀疑武汉一定就是病毒的源头。“武汉也有蝙蝠，不过季节对不上，” 他告诉我说，“时值冬季，这个季节蝙蝠不太出来活动。” 他的研究显示，在整个东南亚每年有超过一百万人被蝙蝠所携带的冠状病毒所感染。有些抓捕、买卖或喂养动物的个人有可能成为病毒的中间寄主。“不过一般而言那是些生活在蝙蝠栖息岩洞附近的人，” 达斯扎克说，“每到夜晚，蝙蝠都飞出岩洞，进行排泄。有些排泄物可能沾到了某个表面上，或是沾到某人的衣服上，随后那人又可能去摸嘴巴或鼻子。”</p><p>达斯扎克说他一直认为，此类爆发更有可能会在昆明或广州这类南方城市发生，那里有许多蝙蝠栖息的岩洞，并且存在着密集的野生动物交易。他认为中国科学家可能正在对各医院冷柜展开搜查，以期找到从疫情爆发前夕死于肺炎的患者身上所提取的实验室样本来进行研究。“你会想要找到那些样本以寻找是否有新冠病毒，” 他说。“他们最终会找到些什么的。这种事不会是一朝一夕发生的；它需要大量的工作。这种情况在以前的每次疫情中也都会重复发生。结果是疫情早已经在人群中悄悄地发生了。”</p><p>达斯扎克是位于纽约的非盈利研究组织&quot;生态健康联盟&quot;(EcoHealth Alliance)的总裁。该组织本身现已成为阴谋论者的攻击目标, 阴谋论者当中有些人声称病毒是人为制造的。达斯扎克和许多有名望的病毒学家称任何实验室产物都会显示出人工操纵的明显痕迹。也有猜测说是武汉病毒研究所研究人员在对冠状病毒进行研究时不慎释放出来后造成的疫情爆发。但是对所谓泄漏，甚或是该研究所是否曾研究过导致COVID-19爆发的那种病毒的说法都并无实据支持。</p><p>“中国科学家受到的要发表研究成果的压力极大，” 达斯扎克说。“那是开放和透明的真正驱动力。” 他曾在武汉待过相当长一段时间，并与中国同行们共同发表过十几篇学术论文。“如果我们发现有一种病毒能感染人类并能在细胞培养环境下传播，我们早就会把信息公布出去了，” 他说。“在十六年中，我从未遇见过哪怕是一点点阴谋诡计的迹象。他们从未隐瞒过数据。我从未遇到过这种情形，一名实验室人员告诉我事情是这样的，而另一名实验室人员告诉我事情是那样的。如果你想对别人隐瞒点什么，为何还要邀请外国人来你的实验室？”</p><p>在4月份，川普总统告诉记者们说美国应该停止为与武汉病毒研究所的合作研究提供资金。川普此一评论一出，美国国立卫生研究院(NIH)很快便取消了给正在研究蝙蝠寄主冠状病毒如何传染人类课题的&quot;生态健康联盟&quot;的370万美元研究拨款。生态健康联盟对此决定提起上诉，但达斯扎克并不期待会有所改变，除非总统换人。</p><p>我问达斯扎克，既然他对他那些武汉同行们的公开透明如此有信心，那为何中国政府又对疫情爆发的其他方面如此守口如瓶？他回答说科学是一回事，而政治又是另一回事；他认为这是因为官员们对早期失误感到尴尬，作为反应他们干脆封闭了所有信息渠道。“你是派驻中国的一名记者，” 他说，“我不知道你会怎么评价中国人的公关理念，要我说他们在这方面相当糟糕。”</p><p>一天下午，我乘车途径火神山，也就是突击建设起来的应急医院所在地。那块地方被用警戒线隔离了起来；人们告诉我目前该医院正处于空置状态以防疫情重来。但这种前景似乎不太可能发生，因为像中国其他地方一样，武汉已开始着眼于疫情的下一个阶段了。7月初，国有制药公司国药集团旗下的中国生物技术股份有限公司(C.N.B.G.)在武汉完成了一处疫苗生产工厂的建设。该项目还在武汉封城期间就已启动。“这是政治上正确的做法，” 上海一位生物科技企业家告诉我，“这是向全世界宣示英雄的武汉人民已东山再起。”</p><p>该工厂具备年产疫苗超一亿剂的生产能力。中国生物技术股份有限公司位于北京的另一处工厂则具备年产一亿剂另一不同版本疫苗的产能。两处工厂都已在生产和囤积即将完成三期临床试验的疫苗。因为中国眼下实际并无活跃疫情，中国生物技术股份有限公司不得走向国外去寻找参与其疫苗临床试验的对象。目前科研人员已在阿联酋、秘鲁以及拉美和中东地区的其他国家招募了逾五万名参试人员。</p><p>香港大学首席创新官何亦武告诉我，中国生物技术股份有限公司的新冠疫苗已获得官方应急使用许可在一些中国政府官员身上使用。“我本人认识一些政府官员，他们告诉我他们已接受了免疫接种，” 他在接受电话采访时说。他估计已接受疫苗注射的人数在一百人上下。“这都是些中层官员，” 他说， “副部长、市长、副市长这种级别。”</p><p>制药厂高管预计也会率先接受免疫接种，也包括像穿上个人防护装备后伴随工人们进入患者病房工作的那位建筑公司经理这一类人。“国药和中生集团的每一位高管都已接受了免疫注射，” 何说道，“这包括了国药集团的执行长、董事会主席、所有的副总裁——所有人。” 中国媒体报道说已对全世界疫情高危地区几十万人使用该疫苗进行了免疫接种。(中生集团对此未予置评。)</p><p>在西方，中国的国家形象因新冠疫情和近期其他事件而严重受损。中国对香港和新疆加紧了政治镇压，在五月份澳大利亚呼吁对病毒起源展开调查后，中国对此反应激烈，对从大麦到牛肉在内的澳洲进口货物实行了新的关税和限制措施。不过何相信这种形势只是暂时的。“所有这些情绪都能迅速转变，” 他告诉我说，“我想一旦中国有了疫苗，而他们又愿意帮助其他国家的话，情况就会变得大不相同。”</p><p>在来香港任职之前，何亦武曾担任过盖茨基金会的副主任一职，在那里他曾与中生集团就好几个疫苗项目有过紧密合作。他们最成功的合作项目之一涉及生产用于发展中国家的脊髓灰质炎疫苗，这一经历帮助中生集团发展起新冠疫苗必须具有的生产规模。另一家中国制药企业康希诺生物制药公司也在对其研制的新冠疫苗开展三期临床试验。中国政府已表明它最终会把这些疫苗提供给发展中国家使用。</p><p>这里面还存在着竞争性因素。“中国想要击败美国，” 何亦武说。他相信到10月底中生集团的疫苗会得到某种程度的许可以应用于普通民众。“中国官员们想的是唐纳德-川普可能会在美国大选之前批准一款美国疫苗，” 他说。“因此他们的目标是抢在那之前批准一款疫苗。”</p><p>不管中国研制新冠疫苗的步伐有多迅速，或是自一月份以后他们应对疫情是多么地有效，这都不太可能让西方人忘却他们在疫情大流行早期阶段所犯的错误和误导信息。这其中一部分是因为文化的差异——中国人对已犯过错的反应常常是向前看而不是向后看。在1月31日，方方在她的日记里评论道，“中国人从不喜欢承认自己的错误，也没有很强的忏悔感。” 他们通常很难理解为何这一特质对西方人来说是如此让人沮丧。在这方面，疫情确实是一面镜子——它不允许中国人眼朝外看，通过他人的视角来看待自己。</p><p>但是，在中国内部，这种镜中映像是很清楚的。疫情大流行把中国体制的弱点和优势、以及政府和民众的关系都映照得十分鲜明。他们互相之间非常了解：官员们从未觉得有必要告诉公民们在武汉发生过的确切事实，但他们也明白美国那种疫情致死水平会是令人震惊的——若以中国人口计算，总计死亡人数会是超过一百万还不止。为了避免那种规模的死亡人数，政府也知道民众愿意接受严格的封锁措施并愿意为战疫贡献自己的努力。</p><p>反过来，公民对该如何解读政府也很有技巧。人们常常抱持表面上似乎互相矛盾的两种观念：党在某些事上撒了谎但在另外一些事上则给出良好的指导。多半情形下，公民们能推断出两者的差异。在疫情中，让人惊异的是，即便当中国人沉湎于阴谋论时，这些想法也很少导致个人的冒险行为，这与美国的常见情形大相径庭。可能是中国人在经历了数十年的审查制度和误导信息后已达到了类似免疫的效果：在这种环境下，人们发展出自我保护的强烈本能，他们似乎也不像许多美国人易受社交媒体的影响而辨不清方向。他们从疫情大流行所得到的经验教训也常常与西方人所预料的相佐。在今年早些时候我曾通过微信与在一家收治了许多被感染患者的武汉医院工作的一名药剂师有过交流。在2月26日，他曾表达了对早期掩盖疫情的愤怒。“我个人的观点是政府总是疏忽塞责并压制不同意见，” 他写道，“正因为如此，他们丧失了控制住病毒的最佳时机。”</p><p>在武汉，我与他见过几次面，在其中一次交谈中我把他在2月间所写的话拿给他看。我问他假使现在他处在李文亮的境地，意识到某种未知疾病即将爆发，他会怎么做。他会在网上贴出警示吗？或是联系卫生官员？还是给记者透露消息？</p><p>这位药剂师想了一会，“我会亲口告诉亲近的朋友们，” 他说，“但我不会捅到网上。不会有任何书证。”</p><p>我问起同一事件若发生在现在结果是否会有不同。</p><p>“还会是一样的，” 他说，“这是体制的问题。”</p><p>他解释说，在威权国家，地方官员害怕惊动上级，这使得他们倾向于掩盖事实。但当高层领导终于了解真相后，他们能快速有效地采取行动。他感到困惑的是，在病毒横扫全球破坏了城市和国家的稳定之后，武汉仍有这么许多不曾改变。最近因为他的眼镜度数加深，他又去了多年来配镜常去的同一家眼镜店。他在前华南市场楼上的同一处位置找到了那家店，店主还是同一个人。唯一的差别价格掉下来很多。“通常我会还还价，但这次我感到有点尴尬，” 他说，“我一点价都没还。”</p><p>在武汉逗留最后几天的一个下午，我与方方在一家安静的咖啡馆见了面。5月份，她的日记在美国出版，由加州大学伯克利分校中国文学教授迈克尔-巴里负责英译。巴里从2月25日开始翻译工作，正值方方发表第一篇网上日记的整整一个月之后。他的工作速度惊人，真正是赶上了疫情大流行的浪潮。到4月10日他翻译完毕，武汉已经解封，而洛杉矶则陷入了封锁状态。</p><p>就像疫情的许多方方面面一样，这种共同经历在某些人眼中也成了人群撕裂的导因。中国国营媒体指控方方让国家蒙羞，而极左民族主义者则在网上攻击她，与他们在疫情期间所做的一样。他们也把攻击矛头对准了身在洛杉矶的巴里。一度，方方在武汉的住址被人公布，有人把写有恶意文字的字条包着石头扔过她家的墙头。</p><p>“我对政治并不热衷，” 方方告诉我说，解释说她只是喜欢把事情准确记录下来。她是个眼神活泼的小个子女性，她给了我一本她的被禁作品&quot;软埋&quot;。这本小说的题材是1949年共产党掌权初期的土地改革——这又是被隔离历史的一个例子，因为有许多地主家庭受到了残酷对待。当该书于2016年出版时，它激怒了崇毛极左派里的好些人物。这些极左派里的同一些人现在又对她的疫情隔离日记大加挞伐。</p><p>65岁的方方已经退休，不过她从由政府主办的湖北省作家协会领取退休金。她说来自另一个政府部门的两名当地官员曾上门拜访并劝她不要在海外出版&quot;武汉日记&quot;，但她拒绝了。“我说，‘如果你们取消我的退休金，我就要告你们，’” 她告诉我说。</p><p>我所遇到的每一位武汉作家都对方方评价很高还很回护她。中国各省的文学界通常都很抱团，作家们也都练就了厚脸皮和足智多谋。当方方的微博账号被暂停时，有些精通技术的年轻人帮助她找到了其它方式来发布内容。也有迹象表明有些身居高位者很欣赏她。方方说微博的一位高层编辑后来还给她写来私人信件为审查制度道歉。“他说他们对暂停我的账号无能为力，但他很钦佩我，” 她说。</p><p>不过此刻她已不能在中国出书或发表文章了。对于亲眼见证历史就在自己家乡展开的一名作家来说，这似乎难以想象，不过方方谈起这种情况却很平静。她说自己最近还在安慰一位同样被禁的年轻作家。“我说你得有耐心，” 方方说，“我相信不会一直这样下去的。”</p>]]>
    </content>
    <id>https://editst.com/2021/nine-days-in-wuhan-the-ground-zero-of-the-coronavirus-pandemic/</id>
    <link href="https://editst.com/2021/nine-days-in-wuhan-the-ground-zero-of-the-coronavirus-pandemic/"/>
    <published>2021-07-03T12:21:51.000Z</published>
    <summary>
      <![CDATA[<p>作者：Peter Hessler(何伟)，<a href="https://www.newyorker.com/magazine/2020/10/12/nine-days-in-wuhan-the-ground-zero-of-the-coronavirus-pandemic">原载《纽约客》</a>，2020年10月5日</p>
<p>翻译：anobody</p>
<p>在我二度造访位于武汉市中心新华路和发展大道交叉路口处的原华南海鲜批发市场时，我戴上了口罩及一付镜架松动的太阳镜。时值八月下旬，市场入口处坐着三名着黑色制服的保安。在对我查验护照和测量体温后，他们要我扫描一个二维码，以连接到一个登记系统。然而该登记系统却只接受中国的居民身份证号码，这些保安似乎拿不准该如何对待一个外国人。我递上那付太阳镜并解释说它需要修理。</p>
<p>最早记录到的新冠感染群发性病例就发生在华南市场。一周前我曾首次尝试进入该市场，不料引起貌似便衣警察的一名男子的注意，只好无功而返。该市场仍属敏感地点，一楼曾经病毒肆虐的那些摊位早已被建起的蓝色高墙封堵。不过市场二楼仍在营业，这也就是我此番再来要带上那付太阳镜的原因。</p>
<p>一名保安检查了我那副镜架松动的太阳镜。“你可以进去，” 他终于发话说，“但不许拍照。”</p>
<p>另一名保安则被指派伴我同行。我俩爬上一段很陡的楼梯，经过一个新漆好的招牌&quot;和光眼镜市场&quot;。去年12月它还叫&quot;华南眼镜市场&quot;，与一楼的海鲜批发市场同名。</p>
<p>华南市场的这种组合毫无逻辑可言：楼下卖鱼鲜，楼上卖眼镜。当地人告诉我，这是大约15年前一批眼镜批发商人被这里的廉价租金吸引的缘故。自那以后鱼鲜和眼镜市场竟然和谐并存，直到去年12月的最后一天，武汉市卫健委发布公告证实了之前的一系列传言。那份公告提到科研人员正对与海鲜市场有27人感染一类不明原因&quot;病毒性肺炎&quot;的病例进行调查。不过传递出来的讯息总的调子是要安抚人心：“目前尚未发现人传人的明显证据，也无医疗人员受到感染。”</p>
<p>而事实上，武汉的医生们已见到有同事开始发病。在公告发布的前一天，一位名叫李文亮的眼科医生在其医学院同学微信群中发出了一系列警示。有人把李的微信讯息截屏发到了网上，当天晚上就有卫生官员将李招去问话。几天后，警方迫使李文亮签署悔过书承认自己发出警示构成&quot;非法行为&quot;.</p>
<p>此时，政府已关闭了楼下的市场。一楼市场有超过一千个摊位，除了海鲜，还卖淡水鱼及肉类，还有些专卖活体野生动物。到了元旦那天，有身穿防化服的工作人员到场取样并对市场的某些部位开展消毒处理。不过楼上眼镜市场仍在营业。再过了10天政府关闭了二楼的市场；12天以后，武汉全市已处于隔离检疫状态；自那以后的两天之内，几乎所有省份都宣布了进入公共卫生一级应急响应状态。可到了这个时间节点病毒已传播到了全世界——在源头将其切断已变得不再可能。从那以后，中国政府就有关华南市场及疾病可能源头所公布的信息变得极少。</p>]]>
    </summary>
    <title>武汉九日——新冠疫情大流行起始地纪行</title>
    <updated>2021-07-03T12:21:51.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="技术" scheme="https://editst.com/categories/%E6%8A%80%E6%9C%AF/"/>
    <category term="Cloudflare" scheme="https://editst.com/tags/Cloudflare/"/>
    <category term="Android" scheme="https://editst.com/tags/Android/"/>
    <category term="Telegram" scheme="https://editst.com/tags/Telegram/"/>
    <content>
      <![CDATA[<p>由于平日使用好几个手机号<s>薅羊毛</s>，而目前绝大多数手机只能使用两张卡，只好把多余的小号扔在备用的手机里面，使用其他软件来转发消息。经过一番寻找，<a href="https://github.com/telegram-sms/telegram-sms">telegram-sms</a> 这款软件可以较好地转发相关短信和通知消息，同时支持主动发送短信。</p><p>然而由于众所周知的原因，大陆无法直接连接 <a href="https://api.telegram.org">telegram api</a>，需要备用机结合代理软件使用，大大增加了耗电量。好在 telegram-sms 软件开发者推出了<a href="https://github.com/Fusion-SMS/telegram-sms-china/releases">中国大陆特色版本</a>，可以自定义 api 地址。很自然地想到可以利用 Cloudflare Workers 来做一个代理，实现大陆正常访问。</p><h2 id="TL-DR">TL; DR</h2><p>将 <a href="https://github.com/manzoorwanijk/telegram-bot-api-worker">Telegram Bot API Worker</a> 部署到自己的 Cloudflare Workers，再将生成的地址 <code>my-worker.mysubdomain.workers.dev</code> 填入中国特供版 telegram-sms 即可。下面进一步介绍一下软件的配置。</p><span id="more"></span><h2 id="创建-Telegram-Bot">创建 Telegram Bot</h2><p>访问 <a href="https://t.me/BotFather">@BotFather</a> 选择 <code>/newbot</code>，自定义 bot name 和 username，记下生成的 bot api，类似 <code>123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11</code>。</p><h2 id="部署-Telegram-Bot-API-Worker">部署 Telegram Bot API Worker</h2><p>访问 <a href="https://dash.cloudflare.com">Cloudflare Dashboard</a>，进入 Workers 页面，创建或修改已有的 Worker，将 <a href="https://raw.githubusercontent.com/manzoorwanijk/telegram-bot-api-worker/master/index.js">index.js</a> 复制到编辑器中，保存并部署即可。记录下生成的 Worker 地址。</p><h2 id="配置-telegram-sms">配置 telegram-sms</h2><p>参照 (用户手册)[<a href="https://guide.telegram-sms.com/zh_cn/user-manual">https://guide.telegram-sms.com/zh_cn/user-manual</a>] 配置，最后将 <code>api.telegram.org</code> 更改为上一步生成的 Worker 地址，测试并保存即可。</p><p>PS：在使用中遇到了 api 地址更改后无法保存的情况，可以 fork 仓库后自行修改<a href="https://github.com/Fusion-SMS/telegram-sms-china/blob/1078eff9a00cc85722617ceabd10f953376008de/app/src/main/res/layout/activity_main.xml#L38">此处的 api 地址</a>，再利用自带的 GitHub actions 编译即可。</p>]]>
    </content>
    <id>https://editst.com/2021/telegram-sms/</id>
    <link href="https://editst.com/2021/telegram-sms/"/>
    <published>2021-05-26T01:11:44.000Z</published>
    <summary>
      <![CDATA[<p>由于平日使用好几个手机号<s>薅羊毛</s>，而目前绝大多数手机只能使用两张卡，只好把多余的小号扔在备用的手机里面，使用其他软件来转发消息。经过一番寻找，<a href="https://github.com/telegram-sms/telegram-sms">telegram-sms</a> 这款软件可以较好地转发相关短信和通知消息，同时支持主动发送短信。</p>
<p>然而由于众所周知的原因，大陆无法直接连接 <a href="https://api.telegram.org">telegram api</a>，需要备用机结合代理软件使用，大大增加了耗电量。好在 telegram-sms 软件开发者推出了<a href="https://github.com/Fusion-SMS/telegram-sms-china/releases">中国大陆特色版本</a>，可以自定义 api 地址。很自然地想到可以利用 Cloudflare Workers 来做一个代理，实现大陆正常访问。</p>
<h2 id="TL-DR">TL; DR</h2>
<p>将 <a href="https://github.com/manzoorwanijk/telegram-bot-api-worker">Telegram Bot API Worker</a> 部署到自己的 Cloudflare Workers，再将生成的地址 <code>my-worker.mysubdomain.workers.dev</code> 填入中国特供版 telegram-sms 即可。下面进一步介绍一下软件的配置。</p>]]>
    </summary>
    <title>使用 telegram-sms 无需代理转发安卓备用机短信</title>
    <updated>2021-05-26T01:11:44.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="随笔" scheme="https://editst.com/categories/%E9%9A%8F%E7%AC%94/"/>
    <category term="年终总结" scheme="https://editst.com/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    <content>
      <![CDATA[<p>说来讽刺，一年前的我还在说着征途是星辰大海，期待2020年会有更好的世界。可事实是，无数人被微不可见的病毒裹挟着，无力地在时代洪潮中漂流。回首这跌宕起伏的一年，竟几乎没有了对来年的期待。虽说每年都要挑这么一个时刻来记录什么显得有些过于刻意，但今年尤其值得书写与记录，把每个人真实的记忆、情感记录下来，才有一个个真实的人，否则剩下的就只有“正确的集体记忆”了。那么，为了保留我这或许是错误的记忆，还是多写一点吧，就从绕不开的新冠肺炎说起。</p><p>哦对了，推荐声东击西播客的这枚<a href="https://etw.fm/2020-capsule">2020声音胶囊</a>，如它所介绍的，可以<strong>感触到 2020 年最真实的印记和温度</strong>。</p><span id="more"></span><p>如果没记错的话，我是在2019年12月30日第一次听说，在武汉出现了神秘的肺炎，甚至一度传为非典再来。然而当时的我，还天真地相信着官方的信息，甚至向身边的人强调：没有明显的人传人证据。或许是某种奇怪的潜意识作用，我选择了早早离开武汉，却没有想到带几片口罩回家，还天真地计划着大学最后的时光如何度过。</p><p>李文亮医生在微信群的提醒，没有使人们意识到病毒的可怕，只换来了谈话与训诫，后续发声的8人，也被请去喝茶。随着湖北两会开始，病毒也&quot;停止&quot;了传播，一切似乎就这么结束了，人们很快忘记了这小小的插曲，开心地迎接春节。可笑的是，12月27日上报疫情的张继先，被大肆表彰与宣传，而李文亮只是在微信群里提醒了几句，就被训诫谈话，区别只是在于一个向&quot;上&quot;，一个向周围。</p><p>直到1月20日，钟南山宣布：（这种肺炎）肯定（可以）“人传人”，尘埃落定。就算到此时，乃至之后很长时间，无人会料到事情会发展到如此下场。已在家中的我，后知后觉地准备口罩——已经买不到了，接着便是武汉封城，小区封闭，变成了一座座孤岛。口罩、防护服变得比黄金还贵，医院一床难求，无数人明明感染却无法确诊治疗。而每一个和武汉有联系的人，变成了过街老鼠，个人信息被一遍又一遍地统计、上报再泄露。之后全国各地公共交通停止，春节假期延长，却没多少人能安心过年。</p><p>我在家里度过了最长的寒假，或许也能叫作最长的暑假。再次出门已是三月底，我仍盘算着何时能回校，毕业旅游去哪里。毕竟按照非典的剧本，春天来临后病毒便会自行退散，然而这次的病毒显然突变出了新的基因，久久不肯散去。从三月或许就能返校，到四月、五月、六月。在家中迎来了研究生复试，写完了毕业论文，接着线上论文答辩，研究生调剂，再复试……当然，最终还是在6月回到了学校，甚至还拍了几张毕业照，与同学一起来了两场不算迟的<a href="https://editst.com/2020/zhangjiajie-fenghuang-journey/">毕业旅行</a>。</p><p>从未想到个人的命运是这么的变幻莫测，这场灾难一次又一次地击穿我们对它哪怕是最坏的预期，就像是越过了黑洞的视界面，无可抵御地下落，仿佛没有尽头。李文亮医生离开了我们，无数我或许永远不会知道名字的普通人离开了我们——或许我们之前共同坐过某辆公交、地铁，或许在那家小店共同吃过晚餐，永远没有机会再相见了。</p><p>放眼世界，逆全球化、民粹化愈演愈烈，特别是全球疫情爆发以来，美股接连熔断，经济停滞，更加剧了全球范围内的分化，性别、国籍、种族、信仰……人们被一次又一次地分割，而社交媒体和推荐算法更是一步步强化这种分割，信息茧房愈加厚实，每个人都能找到最志同道合的&quot;朋友&quot;，却看不到更真实的世界。这种撕裂，在美国大选中尤为显著，许多人觉得这是民主的失败，似乎还证明了中国模式的成功。最终结果却告诉我们，民主仍有自我纠正的能力。</p><p>再看看国内，随着疫情在国内的好转与国外的恶化，民族主义日盛，许多人甚至连一点点异议与反思都容不下：中国抗疫如此成功，都是党和政府领导得好，你怎么敢有不满？一定是西方反动势力的阴谋！甚至连李文亮医生，都变成了破坏国家防疫大计的罪人，他接受的采访，成了最好的&quot;罪证&quot;。我的观察一定也有偏差，不过看着微博上某些留言的几万个赞，B 站上视频飘过的几万条字幕，让我对新一代青年实在是找不到什么信心，他们从一开始接触的就是国内的局域网，受到的教育也是一遍筛选的结果，很难有机会看看外面的世界。连我身边的不少同龄人，都还是坚信&quot;西方反动势力&quot;的这一套宣传，似乎也只能感叹教育的成功了。不过今年的流行词&quot;内卷&quot;、“小镇做题家”、&quot;打工人&quot;似乎又反映了不少人对现状的不满，折射出了一种微妙的矛盾：在对于国家前途无限乐观的同时，对于自己的前途却极其悲观，可怜。</p><p>说回自己，从去年考研开始，就在后悔选择了物理专业，而大学期间又过于悠闲，没能好好思考毕业的去向，调整自己的方向。说来讽刺，明明考研就是为了逃避就业，还是又给自己找了那么多的借口，以至于随波逐流地调剂，还是来到了丝毫没有兴趣的物理专业。虽然新的学校处处是工地，交通差劲，远离市区，但还是结识了不少新朋友，感谢你们带我打球，带我约饭，商业互吹，一起欢笑。</p><p>这一年里，我<a href="https://editst.com/2020/summary-2020-read/">读了几本书</a>，特别是讲述历史的几本，给了我新的理解世界的角度，也让我看到了人性的幽暗。下半年还去了不少地方旅游，解锁了好几家博物馆，最喜欢的是<a href="http://www.sxhm.com/">陕西历史博物馆</a>和<a href="https://www.gznywmuseum.org/">西汉南越王博物馆</a>，前者有着毋庸置疑的厚重馆藏，后者有着精心设计的场馆和布展，均让人流连忘返。至于电影，最惊喜的莫过于年底上映的<a href="https://movie.douban.com/subject/24733428/">《心灵奇旅》</a>，皮克斯用它一贯的温暖治愈了被这一年反复蹂躏的我们，温暖的阳光，美味的食物，金黄的落叶，仅仅是简单的活着就足够美好。</p><p>好在，2020年终于结束了，今年毫无疑问是漫长的一年，可在我的感觉里却像是最快的一年，明明有那么多惊涛骇浪值得记述，当我驻足回忆时，却消散无影。犹记得今年6月时的惊异：居然2020已经过去了一半，转眼间这剩下的一半也匆匆溜走。哪怕2020完全称得上“最坏的一年”，但我始终坚信这个世界会好的，有李文亮医生、艾芬医生、陶勇医生、张桂梅校长，有主动前往武汉的医护工作者，有接力转发《发哨子的人》的网友，有自发声援弦子的普通市民，哪怕黑暗再浓重，也有微光在汇聚，守护着尚未被黑暗吞噬的心灵。时代的浪潮再汹涌，我们依然可以彼此守望相助。</p><p>仍有千言万语不知从何说起，不如就此打住，真诚祝福所有人，不要被黑暗吞噬，2021要幸福啊。</p>]]>
    </content>
    <id>https://editst.com/2020/summary-2020/</id>
    <link href="https://editst.com/2020/summary-2020/"/>
    <published>2020-12-30T13:38:51.000Z</published>
    <summary>
      <![CDATA[<p>说来讽刺，一年前的我还在说着征途是星辰大海，期待2020年会有更好的世界。可事实是，无数人被微不可见的病毒裹挟着，无力地在时代洪潮中漂流。回首这跌宕起伏的一年，竟几乎没有了对来年的期待。虽说每年都要挑这么一个时刻来记录什么显得有些过于刻意，但今年尤其值得书写与记录，把每个人真实的记忆、情感记录下来，才有一个个真实的人，否则剩下的就只有“正确的集体记忆”了。那么，为了保留我这或许是错误的记忆，还是多写一点吧，就从绕不开的新冠肺炎说起。</p>
<p>哦对了，推荐声东击西播客的这枚<a href="https://etw.fm/2020-capsule">2020声音胶囊</a>，如它所介绍的，可以<strong>感触到 2020 年最真实的印记和温度</strong>。</p>]]>
    </summary>
    <title>2020 年终总结：时代洪潮中的蝼蚁</title>
    <updated>2022-09-27T05:13:40.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="随笔" scheme="https://editst.com/categories/%E9%9A%8F%E7%AC%94/"/>
    <category term="年终总结" scheme="https://editst.com/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    <category term="读书" scheme="https://editst.com/tags/%E8%AF%BB%E4%B9%A6/"/>
    <content>
      <![CDATA[<p>今年上半年在家，确定了研究生去向后读了几本书，不少是好早之前买好堆在家里没读的，大体总结一下。</p><p>首先是历史类，《被统治的艺术》，《万历十五年》，《一百个人的十年》，《奥斯维辛：一部历史》，《显微镜下的大明》基本是对一段历史的挖掘，可以看到面对种种情形，人的适应或异化，就像是树根，总能找到活下去的方法。《人类简史》与《枪炮，病菌与钢铁》，观点十分近似，对世界为什么是现在的样子给出了自己的回答，虽然有理，也有值得进一步商讨的地方。接下来还是要读几本更“历史”的书，以求对世界历史的发展有更清晰的认识。</p><p>还有科普类，读的不算多，毕竟我都学了四年物理了，就没再读太多这些领域的科普书，因此读了一本信息技术方面的《编码》，写的实在是深入浅出，读到后面还是有些跟不上，接下来还是要系统的学习一下计算机相关的课程，努力转行。另一本《永久记录》特意读了斯诺登放出来的未删减版，其实没什么太出乎意料的内容，大都已经了解过，但看到他亲自讲解整个行动的细节，仍感到紧张和刺激。</p><p>最后是小说，《克莱因壶》，《宇航服防尘指南》，《呼吸》，《真名实姓》四本是科幻，水平大都可以，能分辨出不同年代的痕迹，特别是早期的科幻作品，现在读来仍不过时。《4321》，《查无此人》，《白鹿原》，《长夜难明》，《坏小孩》几本有&quot;跟风&quot;读的，也有早就买来没读的，都值得推荐，尤其是《查无此人》，短小精悍，放在当前来看更是别有一番警醒的意味。</p>]]>
    </content>
    <id>https://editst.com/2020/summary-2020-read/</id>
    <link href="https://editst.com/2020/summary-2020-read/"/>
    <published>2020-12-25T15:21:51.000Z</published>
    <summary>
      <![CDATA[<p>今年上半年在家，确定了研究生去向后读了几本书，不少是好早之前买好堆在家里没读的，大体总结一下。</p>
<p>首先是历史类，《被统治的艺术》，《万历十五年》，《一百个人的十年》，《奥斯维辛：一部历史》，《显微镜下的大明》基本是对一段历史的挖掘，可以看到面对种种情形，人的适应]]>
    </summary>
    <title>2020 读书小结</title>
    <updated>2021-12-31T08:27:51.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="技术" scheme="https://editst.com/categories/%E6%8A%80%E6%9C%AF/"/>
    <category term="Hexo" scheme="https://editst.com/tags/Hexo/"/>
    <category term="Cloudflare" scheme="https://editst.com/tags/Cloudflare/"/>
    <category term="GitHub" scheme="https://editst.com/tags/GitHub/"/>
    <content>
      <![CDATA[<p><strong>2021-12-31 更新：目前 <a href="https://pages.cloudflare.com/">Cloudflare Pages</a> 已开放，可以连接 GitHub 仓库实现自动部署，方便快捷<s>无污染</s>。</strong></p><p>Cloudflare 在2019年发布了 <a href="https://blog.cloudflare.com/workers-sites/">Workers Sites 产品</a>，可以把静态网站直接存储在 Workers KV 中，然后使用 Workers 调用，这样可以利用 Cloudflare 几百个边缘节点，加速站点加载。然而 Workers KV 之前一直是收费服务，<s>没法白嫖</s>，所以我之前的网站还是托管在 Vecel，而且说实话速度也不错（虽然访问的人本来就不多）。</p><span id="more"></span><p>好消息是<s>资本家为了占领市场</s> Cloudflare 近日大发慈悲，提供了<a href="https://blog.cloudflare.com/workers-kv-free-tier/">免费的 Workers KV 试用</a>，虽然有读写查删的限制（The free tier includes 100,000 read operations and 1,000 each of write, list and delete operations per day, resetting daily at UTC 00:00, with a maximum total storage size of 1 GB. ），但对于我这种没什么人看的网站是够用了的，因此我第一时间把它部署到了 Cloudflare Workers Sites 上，<s>体验到了飞一样的速度。</s></p><p>简单的讲，只需要在<a href="https://editst.com/2019/hexo-CI-github-actions/">使用 GitHub Actions 持续集成 Hexo 博客并发布</a>的配置基础上增加几行就可以了：</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Deploy</span> <span class="string">to</span> <span class="string">Cloudflare</span> <span class="string">Workers</span></span><br><span class="line">  <span class="attr">uses:</span> <span class="string">cloudflare/wrangler-action@1.3.0</span></span><br><span class="line">  <span class="attr">env:</span></span><br><span class="line">    <span class="attr">USER:</span> <span class="string">root</span></span><br><span class="line">  <span class="attr">with:</span></span><br><span class="line">    <span class="attr">apiToken:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.CF_WORKERS_TOKEN</span> <span class="string">&#125;&#125;</span></span><br></pre></td></tr></table></figure><p>当然你还要在项目中增加一份 wrangler 的配置，下面稍微展开说一下</p><h2 id="配置-wrangler">配置 wrangler</h2><h3 id="创建-Cloudflare-API-Token">创建 Cloudflare API Token</h3><p>在<a href="https://dash.cloudflare.com/profile/api-tokens">这里创建一个 API Token</a>，选择提供的<strong>编辑 Cloudflare Workers</strong> 模板，自定义作用域和权限即可。</p><h3 id="编辑-wrangler-toml">编辑 wrangler.toml</h3><p>在源文件夹根目录下新建 <code>wrangler.tomal</code> 文件，配置如下：</p><figure class="highlight toml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">name</span> = <span class="string">&quot;hexo&quot;</span></span><br><span class="line"><span class="attr">type</span> = <span class="string">&quot;webpack&quot;</span></span><br><span class="line"><span class="attr">account_id</span> = <span class="string">&quot;$yourAccountId&quot;</span></span><br><span class="line"><span class="attr">workers_dev</span> = <span class="literal">false</span></span><br><span class="line"><span class="attr">route</span> = <span class="string">&quot;example.com/*&quot;</span> <span class="comment"># Your domain</span></span><br><span class="line"><span class="attr">zone_id</span> = <span class="string">&quot;$yourZoneId&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="section">[site]</span></span><br><span class="line"><span class="attr">bucket</span> = <span class="string">&quot;./public&quot;</span> <span class="comment"># Add your build directory name here</span></span><br><span class="line"><span class="attr">entry-point</span> = <span class="string">&quot;workers-site&quot;</span></span><br></pre></td></tr></table></figure><h2 id="使用-GitHub-Action-部署到-Cloudflare-Workers-Sites">使用 GitHub Action 部署到 Cloudflare Workers Sites</h2><p>将之前创建的 API Token 添加到 GitHub 仓库的 Secrets，之后在 GitHub Action 配置的最后调用 <a href="https://github.com/cloudflare/wrangler-action">Wrangler CLI 的 GitHub Action</a> 即可。</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Deploy</span> <span class="string">to</span> <span class="string">Cloudflare</span> <span class="string">Workers</span></span><br><span class="line">  <span class="attr">uses:</span> <span class="string">cloudflare/wrangler-action@1.3.0</span></span><br><span class="line">  <span class="attr">env:</span></span><br><span class="line">    <span class="attr">USER:</span> <span class="string">root</span></span><br><span class="line">  <span class="attr">with:</span></span><br><span class="line">    <span class="attr">apiToken:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.CF_WORKERS_TOKEN</span> <span class="string">&#125;&#125;</span></span><br></pre></td></tr></table></figure><h2 id="参考">参考</h2><ul><li><a href="https://blog.skk.moe/post/deploy-blog-to-cf-workers-site/">将 Hexo 部署到 Cloudflare Workers Site 上的趟坑记录</a></li></ul>]]>
    </content>
    <id>https://editst.com/2020/cloudflare-workers-site/</id>
    <link href="https://editst.com/2020/cloudflare-workers-site/"/>
    <published>2020-11-25T15:28:27.000Z</published>
    <summary>
      <![CDATA[<p><strong>2021-12-31 更新：目前 <a href="https://pages.cloudflare.com/">Cloudflare Pages</a> 已开放，可以连接 GitHub 仓库实现自动部署，方便快捷<s>无污染</s>。</strong></p>
<p>Cloudflare 在2019年发布了 <a href="https://blog.cloudflare.com/workers-sites/">Workers Sites 产品</a>，可以把静态网站直接存储在 Workers KV 中，然后使用 Workers 调用，这样可以利用 Cloudflare 几百个边缘节点，加速站点加载。然而 Workers KV 之前一直是收费服务，<s>没法白嫖</s>，所以我之前的网站还是托管在 Vecel，而且说实话速度也不错（虽然访问的人本来就不多）。</p>]]>
    </summary>
    <title>将 Hexo 部署到 Cloudflare Workers Sites 上</title>
    <updated>2021-12-30T16:33:22.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="技术" scheme="https://editst.com/categories/%E6%8A%80%E6%9C%AF/"/>
    <category term="挖财记账" scheme="https://editst.com/tags/%E6%8C%96%E8%B4%A2%E8%AE%B0%E8%B4%A6/"/>
    <category term="SQLite" scheme="https://editst.com/tags/SQLite/"/>
    <content>
      <![CDATA[<p>前段时间挖财记账改版，只有会员才能导出数据，而且<strong>一个月就要18元</strong>（2020/03/19开通时），促使我彻底放弃挖财转向 Bluecoins <s>才不是因为穷</s>。由于当时急着导出数据，还是开了一个月的会员，然而为了不让它再赚其他人的最后一笔钱，寻找了一下它的数据存储方式，可以手动导出数据，不用再花钱了。</p><p><strong>以下内容仅适用于取得 root 权限的 Android 手机</strong></p><h2 id="TL-DR">TL; DR</h2><p>找到 <code>/data/data/com.wacai365/databases/wacai365.so</code>，导出到电脑后使用 SQLite 软件查看里面的数据即可。明细存储在 <code>TBL_TRADEINFO</code> 表中，对应的账户在 <code>TBL_ACCOUNTINFO</code> 表，时间信息是 UNIX 时间戳，分类信息在 <code>TBL_INCOMEMAINTYPEINFO</code>，<code>TBL_OUTGOSUBTYPEINFO</code>，<code>TBL_OUTGOMAINTYPEINFO</code> 三个表里，根据 UUID 关联一下即可全部导出。</p><span id="more"></span><h2 id="数据库查看">数据库查看</h2><p>我使用的是 <a href="https://sqlitebrowser.org/">DB Browser for SQLite</a> 软件查看导出的数据库，此软件开源、免费，而且有良好的界面和完整的功能，十分优秀。</p><p>打开数据库文件后，可以发现里面共有47个表，然而我需要的只有上面提到的5个表。首先进入 TBL_TRADEINFO 观察一下，很容易发现每列分别是什么。之后分别去其他表观察一下，即可很容易地导出数据了。</p><h2 id="数据导出">数据导出</h2><p>根据观察到的结果，我们可以将多个表结合，之后输出为 csv 文件，即可自由导入到其它记账软件中。由于不同类型的数据需要关联的表也不一样，因此分为支出、收入、转账三类处理。</p><p><strong>下面只导出了时间、金额、帐户、支出大类、支出（收入）小类、备注、账本名称这几部分数据，如需其他数据（如项目、商家等）自行添加联系的表导出即可，原理一样，不再赘述。</strong></p><h3 id="支出部分">支出部分</h3><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">SELECT</span> <span class="keyword">DISTINCT</span> datetime(t.date, <span class="string">&#x27;unixepoch&#x27;</span>, <span class="string">&#x27;localtime&#x27;</span>) 时间, t.money<span class="operator">*</span><span class="number">1.0</span><span class="operator">/</span><span class="number">100</span> 金额, a.name 帐户, o.name 支出大类, os.name 支出小类, t.comment 备注, b.name 账本名称</span><br><span class="line"><span class="keyword">FROM</span> TBL_TRADEINFO t</span><br><span class="line"><span class="keyword">INNER</span> <span class="keyword">JOIN</span> TBL_ACCOUNTINFO a <span class="keyword">ON</span> t.accountUuid <span class="operator">=</span> a.uuid</span><br><span class="line"><span class="keyword">INNER</span> <span class="keyword">JOIN</span> TBL_BOOK b <span class="keyword">ON</span> t.bookUuid <span class="operator">=</span> b.uuid</span><br><span class="line"><span class="keyword">LEFT</span> <span class="keyword">JOIN</span> TBL_OUTGOSUBTYPEINFO os <span class="keyword">ON</span> t.typeUuid <span class="operator">=</span> os.uuid</span><br><span class="line"><span class="keyword">LEFT</span> <span class="keyword">JOIN</span> TBL_OUTGOMAINTYPEINFO o <span class="keyword">ON</span> os.parentUuid <span class="operator">=</span> o.uuid</span><br><span class="line"><span class="keyword">WHERE</span> t.tradetype <span class="operator">=</span> <span class="number">1</span></span><br><span class="line"><span class="keyword">ORDER</span> <span class="keyword">BY</span> t.date <span class="keyword">desc</span>;</span><br></pre></td></tr></table></figure><p><img src="expenditure.webp" alt="导出的支出数据"></p><p>结果如图所示，执行后选择保存结果视图，导出为 csv 即可。</p><h3 id="收入部分">收入部分</h3><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">SELECT</span> <span class="keyword">DISTINCT</span> datetime(t.date, <span class="string">&#x27;unixepoch&#x27;</span>, <span class="string">&#x27;localtime&#x27;</span>) 时间, t.money<span class="operator">*</span><span class="number">1.0</span><span class="operator">/</span><span class="number">100</span> 金额, a.name 帐户, i.name 收入大类, t.comment 备注, b.name 账本名称</span><br><span class="line"><span class="keyword">FROM</span> TBL_TRADEINFO t</span><br><span class="line"><span class="keyword">INNER</span> <span class="keyword">JOIN</span> TBL_ACCOUNTINFO a <span class="keyword">ON</span> t.accountUuid <span class="operator">=</span> a.uuid</span><br><span class="line"><span class="keyword">INNER</span> <span class="keyword">JOIN</span> TBL_BOOK b <span class="keyword">ON</span> t.bookUuid <span class="operator">=</span> b.uuid</span><br><span class="line"><span class="keyword">LEFT</span> <span class="keyword">JOIN</span> TBL_INCOMEMAINTYPEINFO i <span class="keyword">ON</span> t.typeUuid <span class="operator">=</span> i.uuid</span><br><span class="line"><span class="keyword">WHERE</span> t.tradetype <span class="operator">=</span> <span class="number">2</span></span><br><span class="line"><span class="keyword">ORDER</span> <span class="keyword">BY</span> t.date <span class="keyword">desc</span>;</span><br></pre></td></tr></table></figure><p>选择保存结果视图，导出为 csv 即可。</p><h3 id="转账部分">转账部分</h3><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">SELECT</span> <span class="keyword">DISTINCT</span> datetime(t.date, <span class="string">&#x27;unixepoch&#x27;</span>, <span class="string">&#x27;localtime&#x27;</span>) 时间, t.money<span class="operator">*</span><span class="number">1.0</span><span class="operator">/</span><span class="number">100</span> 金额, a.name 转出帐户, a2.name 转入账户, t.comment 备注, b.name 账本名称</span><br><span class="line"><span class="keyword">FROM</span> TBL_TRADEINFO t</span><br><span class="line"><span class="keyword">INNER</span> <span class="keyword">JOIN</span> TBL_ACCOUNTINFO a <span class="keyword">ON</span> t.accountUuid <span class="operator">=</span> a.uuid</span><br><span class="line"><span class="keyword">INNER</span> <span class="keyword">JOIN</span> TBL_ACCOUNTINFO a2 <span class="keyword">ON</span> t.accountUuid2 <span class="operator">=</span> a2.uuid</span><br><span class="line"><span class="keyword">INNER</span> <span class="keyword">JOIN</span> TBL_BOOK b <span class="keyword">ON</span> t.bookUuid <span class="operator">=</span> b.uuid</span><br><span class="line"><span class="keyword">WHERE</span> t.tradetype <span class="operator">=</span> <span class="number">3</span></span><br><span class="line"><span class="keyword">ORDER</span> <span class="keyword">BY</span> t.date <span class="keyword">desc</span>;</span><br></pre></td></tr></table></figure><p>导出的 csv 文件就可以自行处理，导入别的记账软件了，祝使用顺利。</p>]]>
    </content>
    <id>https://editst.com/2020/export-wacai-data/</id>
    <link href="https://editst.com/2020/export-wacai-data/"/>
    <published>2020-08-04T12:16:03.000Z</published>
    <summary>
      <![CDATA[<p>前段时间挖财记账改版，只有会员才能导出数据，而且<strong>一个月就要18元</strong>（2020/03/19开通时），促使我彻底放弃挖财转向 Bluecoins <s>才不是因为穷</s>。由于当时急着导出数据，还是开了一个月的会员，然而为了不让它再赚其他人的最后一笔钱，寻找了一下它的数据存储方式，可以手动导出数据，不用再花钱了。</p>
<p><strong>以下内容仅适用于取得 root 权限的 Android 手机</strong></p>
<h2 id="TL-DR">TL; DR</h2>
<p>找到 <code>/data/data/com.wacai365/databases/wacai365.so</code>，导出到电脑后使用 SQLite 软件查看里面的数据即可。明细存储在 <code>TBL_TRADEINFO</code> 表中，对应的账户在 <code>TBL_ACCOUNTINFO</code> 表，时间信息是 UNIX 时间戳，分类信息在 <code>TBL_INCOMEMAINTYPEINFO</code>，<code>TBL_OUTGOSUBTYPEINFO</code>，<code>TBL_OUTGOMAINTYPEINFO</code> 三个表里，根据 UUID 关联一下即可全部导出。</p>]]>
    </summary>
    <title>无需会员导出挖财记账数据</title>
    <updated>2023-02-06T12:21:02.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="技术" scheme="https://editst.com/categories/%E6%8A%80%E6%9C%AF/"/>
    <category term="Hexo" scheme="https://editst.com/tags/Hexo/"/>
    <category term="GitHub" scheme="https://editst.com/tags/GitHub/"/>
    <category term="Vercel" scheme="https://editst.com/tags/Vercel/"/>
    <content>
      <![CDATA[<p>由于 GitHub Pages 在国内的访问速度实在不理想，使用 Cloudflare CDN 也没什么太好的效果，因此一直在寻找合适的替代品。最近了解到 <a href="https://vercel.com">Vercel</a> 同样提供了简单的一键式托管服务，同时在国内访问速度十分优良，因此迁移到了该服务。下面简单记录一下折腾的过程。</p><span id="more"></span><h2 id="一键托管">一键托管</h2><h3 id="导入站点">导入站点</h3><p>Vercel 的使用十分简单，只需要使用 GitHub 登录，然后填写源码所在的 repository 地址即可，会自动识别使用的框架，并自动生成静态文件后部署。Vercel 会自动分配给你一个网址，用来预览效果。</p><h3 id="自定义域名">自定义域名</h3><p>在项目主页点击 <code>Settings -&gt; Domains</code> 可以添加自己的域名，由于想要使用 Vercel 自带的 CDN 服务，需要在 DNS 记录中配置域名的 CNAME 到到 vercel，为了加速国内访问，可以使用中国专用的 CNAME 域名。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">Type Name Vaule</span><br><span class="line">CNAME www cname-china.vercel-dns.com</span><br><span class="line">A @ 76.223.126.88</span><br></pre></td></tr></table></figure><h2 id="自定义部署">自定义部署</h2><p>使用 Vercel 的全自动部署固然方便，然而会遇到一些小问题，比如<a href="https://editst.com/2019/hexo-CI-github-actions/">这里</a>提到的网页时间问题，需要先处理一下文件的时间。此外还可以自定义 404 页面 <code>/404.html</code>，之后 Vercel 会自动定向到自定义的 404 页面。</p><h3 id="自定义部署命令">自定义部署命令</h3><p>Vercel 默认读取的是根目录中 <code>package.json</code> 的部署命令，因此想要修改部署时执行命令的话可以先在根目录添加一个 <code>vercel.sh</code> 文件，写好自定义命令。</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">export</span> TZ=<span class="string">&#x27;Asia/Shanghai&#x27;</span></span><br><span class="line">git ls-files -z | <span class="keyword">while</span> <span class="built_in">read</span> -d <span class="string">&#x27;&#x27;</span> path; <span class="keyword">do</span></span><br><span class="line">    <span class="built_in">touch</span> -d <span class="string">&quot;<span class="subst">$(git log -1 --format=<span class="string">&quot;@%ct&quot;</span> <span class="string">&quot;<span class="variable">$path</span>&quot;</span>)</span>&quot;</span> <span class="string">&quot;<span class="variable">$path</span>&quot;</span>;</span><br><span class="line"><span class="keyword">done</span></span><br><span class="line">hexo generate</span><br></pre></td></tr></table></figure><p>之后修改 <code>package.json</code> 中的 <code>scripts</code> 部分，然后在 vercel 的 <code>BUILD COMMAND</code> 中填入 <code>npm run build</code>，</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">&quot;scripts&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line">  <span class="attr">&quot;build&quot;</span><span class="punctuation">:</span> <span class="string">&quot;bash ./vercel.sh&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;clean&quot;</span><span class="punctuation">:</span> <span class="string">&quot;hexo clean&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;deploy&quot;</span><span class="punctuation">:</span> <span class="string">&quot;hexo deploy&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;server&quot;</span><span class="punctuation">:</span> <span class="string">&quot;hexo server&quot;</span></span><br><span class="line"><span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br></pre></td></tr></table></figure><p>这样 Vercel 在部署时就会执行 <code>vercel.sh</code> 的命令了。</p><h3 id="自定义-headers">自定义 headers</h3><p>Vercel 默认的 <code>cache-control: max-age=0</code>，有时不利于用户体验，可以自定义 headers，在项目的根目录下添加 <code>vercel.json</code> 文件，填入以下内容即可。</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">&#123;</span></span><br><span class="line"><span class="attr">&quot;headers&quot;</span><span class="punctuation">:</span></span><br><span class="line"><span class="punctuation">&#123;</span></span><br><span class="line"><span class="attr">&quot;source&quot;</span><span class="punctuation">:</span> <span class="string">&quot;/(.*)&quot;</span><span class="punctuation">,</span></span><br><span class="line"><span class="attr">&quot;headers&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span></span><br><span class="line"><span class="punctuation">&#123;</span></span><br><span class="line"><span class="attr">&quot;key&quot;</span><span class="punctuation">:</span> <span class="string">&quot;cache-control&quot;</span><span class="punctuation">,</span></span><br><span class="line"><span class="attr">&quot;value&quot;</span><span class="punctuation">:</span> <span class="string">&quot;max-age=600, must-revalidate&quot;</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure><p>此外也可以根据自己的需要来进行更细致的控制，在 <a href="https://vercel.com/docs/cli#project-configuration">Project Configuration</a> 可以查看完整的配置说明。</p><p>Vercel 还支持 Serverless 功能，包括 Node.js, Go, Python, Ruby 语言，可以轻松开发自己想要的玩法。</p>]]>
    </content>
    <id>https://editst.com/2020/vercel/</id>
    <link href="https://editst.com/2020/vercel/"/>
    <published>2020-08-04T05:22:27.000Z</published>
    <summary>
      <![CDATA[<p>由于 GitHub Pages 在国内的访问速度实在不理想，使用 Cloudflare CDN 也没什么太好的效果，因此一直在寻找合适的替代品。最近了解到 <a href="https://vercel.com">Vercel</a> 同样提供了简单的一键式托管服务，同时在国内访问速度十分优良，因此迁移到了该服务。下面简单记录一下折腾的过程。</p>]]>
    </summary>
    <title>使用 Vercel 自动部署博客网站</title>
    <updated>2022-02-17T02:50:50.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="游记" scheme="https://editst.com/categories/%E6%B8%B8%E8%AE%B0/"/>
    <category term="毕业旅行" scheme="https://editst.com/tags/%E6%AF%95%E4%B8%9A%E6%97%85%E8%A1%8C/"/>
    <category term="张家界" scheme="https://editst.com/tags/%E5%BC%A0%E5%AE%B6%E7%95%8C/"/>
    <category term="凤凰古城" scheme="https://editst.com/tags/%E5%87%A4%E5%87%B0%E5%8F%A4%E5%9F%8E/"/>
    <content>
      <![CDATA[<p>转眼间四年过去，我竟也要毕业了。今年的毕业季撞上了新冠肺炎，一切都只能将就，连毕业论文和答辩都格外敷衍。离开学校已有近五个月，还没有出过门，在家也是各种无聊，加上考研的不顺，感觉好久没怎么开心过了。好在最后还有学校收留我，不算是最坏的结局。</p><p>刚好有同学约着毕业旅行，想想此时出门游客应当是不多，还能最后买几张学生票，于是就参加了这次旅行。没想到最终能有十个人一起，定好行程和酒店，准备好好享受一下难得的毕业旅行。整体的旅行路线是张家界森林公园两天，之后分别去大峡谷、天门山和猛洞河漂流，然后到凤凰古城，最后回到长沙结束。</p><p>张家界的风景确实名不虚传，完全值回票价。不过整个旅行印象最深的倒是和大家玩的几局狼人杀，以及旅途间隙的闲谈，真的很感谢各位的陪伴，这几天玩的很开心。</p><span id="more"></span><h2 id="Day0-长沙→张家界">Day0 长沙→张家界</h2><p>我是5月29日坐飞机到的长沙，只需要出示湖南省的绿码即可通行。事实上此时防控已经十分松散了，没有严格扫码检查，只是看一下健康码（截图），是绿色的就可以。</p><p>去张家界我选择的是19年底刚开通的城际铁路，到长沙站乘车，19:40准时到张家界西站，同样需要检查健康码（只是扫一眼就好），出站时八点左右。张家界西站已经开通了配套的汽车站，有直达武陵源的汽车，然而末班车是18点，因此选择网约车前往武陵源。</p><p>这里注意的是一定要选择网约车，千万不要跟从出站时招呼你坐车的人，坐他们的车没有任何保障，特别感谢车站巡逻人员赶走了他们。如果选择出租车的话，司机一口价200，而网约车（某DD）只需要72，强烈推荐该选择该平台（请给广告费）。</p><p>然而在到达武陵源后发现还是应该选择市区的旅馆，因为从西站去市区近很多，公交会一直运行到八点多，而且白天从市区前往森林公园也有专线车，又便宜又方便。不过我们在武陵源选择的卡慕青年旅舍远远超出了我的预期，每个房间都有独卫，还有超大的公共空间和有很棒的老板，可以帮忙规划路线。</p><p><img src="forest-park-map.webp" alt="森林公园路线图"></p><p>经过晚饭后咨询老板和<s>友好的</s>讨论，森林公园的路线确定为一天山下，一天山上。第一天游览的景点为为金鞭溪和黄石寨，第二天是袁家界、杨家界和天子山。不得不说老板安排的路线还是十分合理的，没有什么奇怪的坑。</p><h2 id="Day1-金鞭溪和黄石寨">Day1 金鞭溪和黄石寨</h2><p><img src="gate.webp" alt="武陵源入口"></p><p>庆幸选择了这段时间出游，本应该人山人海的景区入口门可罗雀，连排队都不需要，直接进入到了森林公园。在这里要表扬森林公园，门票有效期是四天，还有免费的摆渡车可以到各个站，实在是良心景点。由于种种原因，今天的行程开始得较晚，进入大门后已经十一点了。首先乘坐摆渡车来到今天的起点——水绕四门站，然后一路沿着金鞭溪行进。</p><p><img src="monkey1.webp" alt="猴子母子"></p><p>刚开始的路程还是充满乐趣的，有不少猴子盯着游客，伺机抢夺包里的食物。一路上有断断续续的小雨，边走边聊，再拍几张样子各异的山峰，十分惬意。</p><p><img src="monkey2.webp" alt="惯犯猴子"></p><p>当然快乐总是短暂的，景色的重复和行走的无聊是我们不再有心情拍照，只剩下了赶路。下午两点，我们终于到达了黄石寨索道站，在这里遇到了另一只惯犯猴子，被它抢走了手里的零食。看着它熟练地撕开包装，害怕被抓又不敢上前，只能看着它吃着我们辛苦背来的饼干。</p><p><img src="huangshizhai.webp" alt="云雾缭绕的山峰"></p><p>乘坐索道到达黄石寨，值得一提的是索道票是带邮资的明信片，可以直接寄出哦。雨后的山中弥漫着雾气，飘荡在奇形怪状的山峰间，格外的美丽。限于摄影水平，不能表达出当时的意境，脑补一下云雾缭绕的仙境之感吧。</p><p>绕黄石寨一周后，我们一致选择了坐索道下山，早知如此为什么不直接买双程票呢？Too young, too simple! 还是要学习一下长者的经验啊。</p><p><img src="jiangzemin.webp" alt="长者的嘱咐"></p><p>最后引用一下森林公园的命名规则，学习了。</p><blockquote><p>一个峰叫香炉峰，两个峰叫情侣峰，三个峰叫三叠岩，四个峰叫西游记取景地，五个峰叫佛掌峰，一群峰叫猴帅点兵……</p></blockquote><p>索道下山后从森林公园门票站出来，时候尚早，回旅馆休整了一下，前往网红店索溪山庄解决晚餐。然而此店<strong>价格高昂却味道一般</strong>，实在是<strong>不推荐前往</strong>。唯一的特点可能就是餐具比较大？</p><h2 id="Day2-杨家界、袁家界和天子山">Day2 杨家界、袁家界和天子山</h2><p>今天的行程安排的比较紧，加上有人想要挑战从卧龙岭下山，因此我们早早起床开始上山。<s>这里的早指的是九点</s></p><p><img src="bailongtianti.webp" alt="百龙天梯广场景色"></p><p>照样乘坐摆渡车到达水绕四门站，再乘坐专门的车到达百龙天梯，只需一分半钟，即可直达袁家界景区核心部分。然而电梯大半时间是在穿山隧道中，看不到什么景色，所以这基本只是一个单纯的交通工具，观景体验还不如索道。倒是去往电梯的隧道里有一家阿凡达主题的邮局，感兴趣的可以在里面买几张明信片和冰箱贴。</p><p>可能是和昨天的景色类似，也可能是太阳实在过于热情，今天的旅途感觉没什么乐趣，只想快点结束。因此草草地逛完了袁家界，向杨家界进发。</p><p>到达杨家界后，发现前往天波府的路被封住维修中，只好从小路前往一步登天景点。山路上上下下，炙热的阳光陪伴着我们，仿佛在暗示之后悲惨的命运。<s>环境描写的作用，要考的。</s> 在几位前锋人员的<s>忽悠</s>鼓励下，我们走了约一个小时，终于看到了传说中的一步登天景点，只见两个陡峭的扶梯，一眼望不见尽头。没办法，来都来了，除了爬上去还能怎么办呢？这里引用一下<a href="http://www.mafengwo.cn/poi/5960490.html">马蜂窝上的简介</a>，还是很贴切的。</p><blockquote><p>一步登天是张家界景区的最高峰，有铁梯32步可登峰顶。峰顶平坦，有铁栏杆围护。西南诸峰邻近，树木苍郁，西瞰中湖方向景深多层，其中第一层为棱形矮平石柱两座，第二层为石峰三座，其中一座如人抱孩，孩以手揉目状，中间一座如一对情人拥抱，另一应如一大型屏障。南面一石峰上大下小，似一棒槌。</p></blockquote><p><img src="yibudengtian.webp" alt="一步登天风景"></p><p>好在顶上的景色确实优美，对得起一个多小时的跋涉和攀爬，在上面休息了一下，拍了几张合影，开心地回去了。然而由于实在不想继续前行，错过了据说是风景最好的空中走廊景点，只能说出来玩遗憾是难免的，说不定还有机会再见呢。回来的路上和卖水果的老奶奶攀谈，她每天都要背着东西徒步上山下山一趟，单程两个多小时，再看看费拉不堪的我们，实在是惭愧啊。</p><p><img src="tianzishan.webp" alt="天子山观景"></p><p>回到车站后我们继续前往最后一个景点——天子山。下车后先到了贺龙广场，瞻仰了一下巨大的贺龙雕像，之后到下面的观景台拍了几张游客照，便向着地图上的麦当劳奔去。谁想到它就在我们到的这一天关门了！没了麦当劳，只好吃点包里的面包将就一下，然后就坐索道下山了。</p><p>当然有四位勇士挑战了据客栈老板说要走两个小时的卧龙岭徒步下山路线，出人意料的是他们只用了一个来小时，果然是强者。</p><p>回到旅馆后还有之前预定的自助烧烤，老板帮我们准备好了食材和设备，只需要自己烤就好了。事实证明没有经验也可以很快上手，注意多翻动就好。吃着自己烤的食物，喝着米酒，吹着晚风，着实惬意。吃完后再围着烧炭的火盆玩一局狼人杀，白天的疲惫瞬间就消失了。</p><h2 id="Day3-大峡谷">Day3 大峡谷</h2><p><img src="glass-bridge.webp" alt="雨中玻璃桥"></p><p>今天的开局还是不错的，乘公交到大峡谷，刚好碰到摆渡车送到门票站，买票进景点，全程都很顺畅。在玻璃桥上拍照时刚好雨停了一阵，雾气弥漫过来，仿佛置身仙境。天真的我们以为接下来的旅途都会这么开心，谁知道很快就又下起了雨，还越下越大，越下越大……</p><p><img src="grand-canyon.webp" alt="雨中大峡谷"></p><p>没什么别的选择，沿着栈道走入大峡谷，中途还有一段滑道算是有趣。之后便是在底部一直走，一直走，淋着雨，打着作用不大的小伞，穿着早已湿透的鞋子，回忆着红军长征过草地的感觉，走向不知何时才能到达的终点。终于在下午两点到达了游船码头，能坐着歇息一下了。回到武陵源先吃了顿午饭，接着赶往张家界市区。没什么好说的，好好休息一下，明天再会吧。</p><h2 id="Day4-天门山">Day4 天门山</h2><p><img src="winding-road.webp" alt="盘山公路"></p><p>同样是九点多到达天门山索道站，询问售票员得知盘山公路在整修，<strong>只能选择上山下山双程索道</strong>，很遗憾不能体验刺激的盘山公路了。买好票，照样没什么人排队，坐着全程半个来小时的索道到了山上。比起初上黄石寨的惊艳，天门山的景色没有什么吸引我的地方，要说的话也就是上山的索道确实不易。</p><p><img src="tianmendong.webp" alt="天门洞"></p><p>另外还有神奇的天门洞，很难想象大自然是如何一点点塑造出了这样的奇迹，我们在以万年为单位地质变迁面前还是太过于渺小了。天门山东线西线各有一段玻璃栈道，说实话比起昨天的玻璃桥没什么感觉，还需要5元鞋套费用，完全可以略过。</p><p>下山先是乘坐了七级穿山电梯，欣赏了一下旁边挂的照片，有各种极限运动和秀美景色，希望有机会可以亲眼见证一下。之后需要从天门洞前的天梯走下来，有的路段还是比较陡峭的，要注意一下安全。也可以继续选择电梯下山。之后便是新修的快速索道，是上山索道的三倍大小，运行平稳了许多。</p><p>早早回到市区，去了汽车站旁的麦当劳，终于吃到了久违的汉堡。晚上体验了一下剧本杀，剧情不算复杂，不过乐趣在于吃着炸鸡和大家一起玩，开心。</p><h2 id="Day5-猛洞河漂流">Day5 猛洞河漂流</h2><p>如果要说最失望的一天的话，可能就是今天了吧（仅限白天部分）。早起坐上前往猛洞河的包车，与一对中年夫妻一同前往期待中的漂流。快到出发点时，我们被带到了一个出租雨衣和水枪的地方，不仅价格高昂（雨衣分为40，50，60元，水枪租金20元），水枪质量还相当一般，甚至不如河上本地人售卖的10元一把的水枪。由于疫情原因，加上我们是正午时分开始的漂流，全程只遇到了一艘其他人的漂流艇，草草打了两次水仗。</p><p>漂流的大部分行程都是比较平缓的，算得上刺激的地方只有三四处，全程两个来小时，总体的体验一般，远低于期待。或许是人少的缘故，如果放弃打水仗的计划，带点零食和饮料，慢慢顺流而下，倒也算是畅快。不过有了正午毒辣的太阳和闷热的雨衣，实在算不上多么开心的漂流。总结下来，如果想要体验猛洞河漂流的话，<strong>千万不要报旅行团，千万不要选择中午开始，完全没有必要提前购买雨衣和水枪。</strong></p><p><img src="furongzhen.webp" alt="芙蓉镇瀑布"></p><p>结束漂流，我们乘车前往下一个附带的景点——芙蓉镇。说是古镇，确随处可见新修的仿古建筑，还要收一次价格不低的门票。整个小镇匆匆逛完一圈，要说景色的话只有一个瀑布值得一看，其他的建筑并无新意，售卖的也大多是随处可见的义乌小商品。穿着湿湿的衣服来逛芙蓉镇，着实不算什么美好的记忆。</p><p><img src="fenghuang1.webp" alt="凤凰夜景"></p><p>出来后等待着前往凤凰的旅游团汽车，中途还要去茶厂参观品茶。虽然没有买，但是可以用杯子随便接茶水喝，味道还算不错。终于在九点多，到了今天的终点——凤凰古城。走在桥上，映入眼帘的是美丽的夜景，终于有了回归尘世的快乐。</p><p>兜兜转转找到预定的民宿，放下行李，出门去酒吧（第一次哦）体验一下。走在江边的酒吧一条街上，各家店似乎人气都不怎么足，随便找了一家，50元12瓶啤酒，进去后听着小姐姐唱歌，还是现代化的感觉好。中间还有主动献唱的小哥哥，唱的超棒！没想到酒吧十二点九打烊，我们回旅馆继续未结束的狼人杀，直到深夜，第二天可以随意晚起，感觉真的很棒。</p><h2 id="Day6-凤凰古城">Day6 凤凰古城</h2><p><img src="fenghuang2.webp" alt="神奇小店与神仙老板"></p><p>醒来收拾好已经中午了，随意找到家餐馆解决午饭，我独自一人爬到南华山上去<s>玩Ingress</s>欣赏景色，晴天的凤凰却格外闷热，很快就汗流浃背。回到旅馆，等到下午三点多，才再次出门，想要拜访一圈凤凰九景，没料到都没有开门，只能绕着古城逛一下了。碰巧遇到了一家神奇的小店，超脱世外的老板贴心地为我们盖了一整张的纪念章，还赠予我们亲手书写的信封，真的很开心。应老板要求，抹去了店名，若你有缘找到这家店，可否帮忙问好。</p><p><img src="fenghuang3.webp" alt="夜晚的江边"></p><p>凤凰古城真的很小，入夜后我们又来到了酒吧一条街，本想找个清吧歇息的我们被便宜的啤酒（38元12瓶）诱惑，走进了一家比昨天还吵的店，待到十一点多就回去了。明天还要早起赶往怀化南站，坐上回长沙的高铁。</p><h2 id="Day7-凤凰→长沙">Day7 凤凰→长沙</h2><p>早早赶到凤凰汽车站，搭乘第一班车前往怀化南站，结果提前了一个多小时到达。到长沙后，第一件事便是买几杯茶颜悦色，品着茶，找了一家广告随处可见的费大厨辣椒炒肉解决午饭。这家店真的超乎想象的好吃，人均不到40，菜品味道都很棒，服务也很贴心，性价比完爆过去几天的所有店，强烈推荐！（请给广告费）</p><p>之后还去了湖南省博，现在的特展是<a href="http://www.hnmuseum.com/sites/default/files/statics/Euro-Paintings/">从文艺复兴到印象派：欧洲绘画五百年</a>，参展作品还不错，推荐跟着讲解听一遍。最后放一个彩蛋吧，那个年代不应被忘记，也决不要重来！</p><p><img src="people-daily.webp" alt="某期人民日报"></p><h2 id="小结">小结</h2><p>六天的行程就这样结束了，有难忘的景色和畅快的笑容，也有失望的漂流和难免的遗憾，无论如何，感谢九位朋友的陪伴，第一次和这么多人一同出行，以后也很难有机会再全部聚在一起了。天下没有不散的宴席，大学再见，朋友们再见，珍重！</p><p>最后放一下这几天的费用明细，仅供参考，门票均为学生票价格。</p><table><thead><tr><th style="text-align:center">项目</th><th style="text-align:center">价格</th></tr></thead><tbody><tr><td style="text-align:center">森林公园门票</td><td style="text-align:center">116</td></tr><tr><td style="text-align:center">百龙天梯</td><td style="text-align:center">33</td></tr><tr><td style="text-align:center">天子山索道</td><td style="text-align:center">38</td></tr><tr><td style="text-align:center">黄石寨索道来回</td><td style="text-align:center">66</td></tr><tr><td style="text-align:center">大峡谷门票</td><td style="text-align:center">111</td></tr><tr><td style="text-align:center">大峡谷电梯</td><td style="text-align:center">15</td></tr><tr><td style="text-align:center">天门山门票</td><td style="text-align:center">147</td></tr><tr><td style="text-align:center">猛洞河漂流报团</td><td style="text-align:center">300</td></tr><tr><td style="text-align:center">景点来回公交</td><td style="text-align:center">53</td></tr><tr><td style="text-align:center">长沙到张家界</td><td style="text-align:center">115</td></tr><tr><td style="text-align:center">凤凰到怀化</td><td style="text-align:center">40</td></tr><tr><td style="text-align:center">怀化到长沙</td><td style="text-align:center">152.5</td></tr><tr><td style="text-align:center">餐饮（6次）</td><td style="text-align:center">260</td></tr><tr><td style="text-align:center">武陵源住宿3晚</td><td style="text-align:center">123</td></tr><tr><td style="text-align:center">张家界住宿2晚</td><td style="text-align:center">88</td></tr><tr><td style="text-align:center">凤凰住宿2晚</td><td style="text-align:center">183.5</td></tr><tr><td style="text-align:center">总计</td><td style="text-align:center">1841</td></tr></tbody></table>]]>
    </content>
    <id>https://editst.com/2020/zhangjiajie-fenghuang-journey/</id>
    <link href="https://editst.com/2020/zhangjiajie-fenghuang-journey/"/>
    <published>2020-06-14T03:05:16.000Z</published>
    <summary>
      <![CDATA[<p>转眼间四年过去，我竟也要毕业了。今年的毕业季撞上了新冠肺炎，一切都只能将就，连毕业论文和答辩都格外敷衍。离开学校已有近五个月，还没有出过门，在家也是各种无聊，加上考研的不顺，感觉好久没怎么开心过了。好在最后还有学校收留我，不算是最坏的结局。</p>
<p>刚好有同学约着毕业旅行，想想此时出门游客应当是不多，还能最后买几张学生票，于是就参加了这次旅行。没想到最终能有十个人一起，定好行程和酒店，准备好好享受一下难得的毕业旅行。整体的旅行路线是张家界森林公园两天，之后分别去大峡谷、天门山和猛洞河漂流，然后到凤凰古城，最后回到长沙结束。</p>
<p>张家界的风景确实名不虚传，完全值回票价。不过整个旅行印象最深的倒是和大家玩的几局狼人杀，以及旅途间隙的闲谈，真的很感谢各位的陪伴，这几天玩的很开心。</p>]]>
    </summary>
    <title>张家界与凤凰古城六日游</title>
    <updated>2020-10-19T10:24:13.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="转载" scheme="https://editst.com/categories/%E8%BD%AC%E8%BD%BD/"/>
    <category term="新冠病毒" scheme="https://editst.com/tags/%E6%96%B0%E5%86%A0%E7%97%85%E6%AF%92/"/>
    <category term="方方" scheme="https://editst.com/tags/%E6%96%B9%E6%96%B9/"/>
    <content>
      <![CDATA[<p>财经十一人对方方的专访</p><p>文/刘以秦 编辑/马克</p><p>1月25日，大年初一，作家方方发出第一篇日记，她写道：“不知道这一条能不能发出来，先发了试试吧。”</p><p>随后两个月，方方发表了60篇日记，几乎每一篇都受到广泛关注，但公众对方方的态度在这60天里出现了明显变化。</p><p>早期，大家将方方日记当做关注疫情发展的一个窗口，一些人每天都等着方方更新日记，还有不少人在日记下面发布求助信息。一位读者留言称“方方日记是我们在郁闷中的一个呼吸阀”。方方说，看到这句话，心里的感动真的是无词形容，“这些读者是我在封城生活中最大的温暖。”</p><p>湖北作协副主席刘川鄂接受财经十一人记者采访时表示，方方身处疫情中心地，每一天经历着感受着，“把所闻所感记录下来，很有责任心，很有担当。”</p><p>后来舆论分裂，坚挺方方的人依然众多，质疑方方日记充满道听途说的假消息、认为方方日记在传递负能量的人也不计其数。</p><span id="more"></span><p>两位一直坚守在一线的武汉志愿者告诉财经十一人，他们曾经非常认可方方和方方日记，但后来他们觉得失望和气愤。“所有人都在为抗击疫情努力，只想让武汉变得更好，但她写的东西让我觉得非常沮丧。”其中一位志愿者表示。</p><p>另一位志愿者在微博上发布了两篇批评方方的文章，获得了数百万阅读量和上万条留言，他说，“阳光下有阴影我们都知道，我从不反对揭露丑恶，但如果都是丑恶，我们这些人在做什么？”</p><p>4月8日，英文版《武汉日记》上架亚马逊预售，确定在海外出版后，已然分裂的舆论骤然撕裂，关于方方的话题在社交媒体上引发了无数对骂和绝交。</p><p>对方方的质疑也从日记蔓延到了她过往的经历，她被冠以“崇洋媚外”甚至是“卖国贼”的帽子，大加挞伐。</p><p>方方今年65岁，在武汉生活超过60年，曾担任湖北省作家协会主席，出版过100多本文学作品和其它书籍。代表作《软埋》2017年获第三届路遥文学奖，《琴断口》2010年获鲁迅文学奖，《风景》1987年获全国优秀中篇小说奖。1988年至2015年，方方共获得12次百花文学奖，是获百花文学奖次数最多的作家。</p><p>4月9日到4月16日，方方接受财经十一人书面专访，陆续回应了针对她的质疑，包括日记海外出版、日记命名、日记真实性、写作动机、个人身份、个人财产等。方方的回答坦率而锐利，时而透出激愤。</p><p>她说自己只不过是人在疫区，记录了一些封城中的日常生活和即时感想，无法理解为什么有人对自己如此仇恨。</p><p>她说，“除了很小的地方有错（次日已澄清的不算），我写的每一件事都是真实的。”不介意普通老百姓把自己骂得“狗血淋头”，但那些编造谎言挑唆老百姓仇恨自己的人，一生的耻辱都会被“钉起来”。</p><p>她说，自己有几套房子，家里有几人在国外，这都是私事，“但悲哀的是，如果我不‘交代’，谣言就永远没个完。我说了，谣言恐怕仍然不会停止，因为他们根本不听你说什么，就是要造你的谣，就是要骂你。”</p><p>她说，武汉人很快就会恢复元气，武汉也会像过去一样生机勃勃。“但我还是会想，那些失去亲人的人们，他们将怎样走出难关？”</p><p>她说人类应当有共同的价值观，惜小怜弱、悲天悯人、正直诚实、勤奋善良，这些都是人类共同的情感、共同的美德，应该是人类共有的。</p><h2 id="《武汉日记》国内出版不了">《武汉日记》国内出版不了</h2><p><strong>财经十一人：为何《武汉日记》没有出中文版？</strong></p><p>方方：本来应该先在国内出版，之前也有十几家出版社向我提出。但是后来有人挑动公众对我叫骂，而且谁帮我说话就去围攻谁，从而导致国内没有一家出版社敢出。</p><p><strong>财经十一人：在国外出版书籍的周期普遍比较长，但这一次很快就出版了，这是什么原因？</strong></p><p>方方：我的翻译白睿文先生是著名汉学家，他正在翻译我的小说。同时他也有微博，我们互相关注。我估计他是在微博上看到我在记录疫情，而且那时已经写了好多篇，所以他提出能不能先翻译？那时是2月17日，因为我心情不太好，无意出书，所以回绝了，他也表示理解。那个时间找我的国内出版社，我也都回绝了。</p><p>最早找我的是译林出版社，我说我有心情的时候，如果出书，肯定给你。</p><p>到了2月下旬，前来询问的出版社更多了，也有国外出版人在询问，这时疫情也得到缓解，所以我就回复了白睿文先生。他马上开始联系出版社和代理人。我也是图省事，三月初，便把全球版权，全都委托给了代理人。而我这边的日记并没有结束，白睿文先生在与代理人签了协议后，即开始翻译。相当于，我这边每天写，他也每天翻译前面所写的，这并非文学作品，几乎都是大白话，所以应该翻译得也比较快。</p><p>代理人认为这样的书有时效性，所以越快越好。我昨天（4月14日）才将最后的稿子交上，而翻译也刚完工。国外有预售这个过程，是我所不知道的。真正出版，是八月，另外，也有国家是六月。这个时间以国内出版社来看，也是做得出来的。如果抢时效，在现在这样科技发展的时代，两三个月出一本书并不难，有的几天就能出版。</p><p><strong>财经十一人：“三月初，将全球版权授权给了代理人”，为什么代理人最后选择了在国外出版？是因为国内出版社开出的条件太苛刻吗？</strong></p><p>方方：国内自然是先谈定的，稿也是先交的。国内有十多家出版社来约稿，我答应的第一家出版社是正在出我新长篇小说的译林出版社（所有的微信记录都还在）。理由没别的，他们第一个来约稿的。我答应的同时跟他们说，所有的稿酬我都将捐出去，希望他们能尽可能给高一点（同样有文字记录）。但是后来我发现译林社比较谨慎，所以，我就表示不在那里出，而交给了其他出版公司。</p><p>但是，因为叫骂，国内无一家出版社敢出版了。</p><p>我要向你们说明的是：我最愿意在国内出版，国内的版税收入应该比国外高很多，我需要这笔钱，为武汉那些拼过命的人做一点事。现在我的出版人还在国内为此事奔波和争取。当然，日记的全部文字都在网上挂着，实在出不了，也无所谓。而海外有人联系出版，对于作家来说，没有人会拒绝。这是好事，我也不会拒绝。这个过程，我在“学人”的采访中，已经说得很清楚了。（编者注：方方向我们展示了部分与白睿文及译林出版社的聊天记录截图。）</p><p><strong>财经十一人：《武汉日记》出版，您能拿到多少收入？跟您之前出版的书籍相比，这次的收入会高很多吗？</strong></p><p>方方：我刚交完稿，还不知道有多少收入。因为目前只是在预售。但是此书如果国内不出版，收入应该不多吧。外版的总收入分为三份，即代理人、翻译和我。如果国内出版，稿酬应该更高一点。但无论多少，我在签协议之前就已经说过：这份稿酬我全部捐出来。因为考虑到稿酬不会太多，所以想定向捐给牺牲的医护人员遗属。</p><h2 id="为何叫《武汉日记》而非《方方日记》，日记是送“炮弹”吗？">为何叫《武汉日记》而非《方方日记》，日记是送“炮弹”吗？</h2><p><strong>财经十一人：有人说，应该叫《方方日记》而不是《武汉日记》，因为您并不能完全代表武汉，您认同这样的说法吗？</strong></p><p>方方：当然不认同，你们可以到网上搜索一下，上海日记，北京日记，巴黎日记，纽约日记，都有人写过（并不是在疫情期间），难道他们都代表着那个城市吗？有部著名的电影，写的是几个美国年轻人的事，叫《美国往事》，你说这代表了美国？所以，要理解为，这是方方的《武汉日记》。这份个人日记，只代表她本人记录的武汉。别人也可以写他自己的《武汉日记》。</p><p><strong>财经十一人：如果书名改为《方方武汉日记》，是不是争议会少很多？</strong></p><p>方方：我无意改。我没有改的理由，我从来不会被他人绑架。</p><p><strong>财经十一人：出书前您会对网络版做修改吗，比如删掉一些不合适的内容？最后正式出版的版本您满意吗？</strong></p><p>方方：只作了一点小修订，我没有觉得有什么不合适的内容。所以，基本内容与网上登出的差不多，我保持它原有的样子，保持它原始记录的形态。正式的还没有出版，我才交完前言部分，另外加附了一个介绍武汉的内容。目前中文版没有出版社出，外文版一本都没有出，所以，现在还远远谈不上满意不满意。</p><p><strong>财经十一人：前段时间中国和美国因为病毒起源有一些争执，国外也有人对中国进行高额索赔，因此国内有不少人认为，《武汉日记》海外出版，给国外敌对势力提供了攻击中国的“炮弹”，您对此是怎么看的？</strong></p><p>方方：且不说是否会有人提出索赔，即使有人提出了，律师有这么蠢吗？他不在官方媒体找记者实地调查的内容，那里面证据链完整得很，即使华生写的那些文章，也比我的完整一百倍呀。还有官方通报，官方文件，这些是不是更靠谱？你觉得国外律师要寻找证据战胜中国律师，他是会选用官方的正式通报或是经过记者实地调查得到的第一手资料，还是会选用一个作家在家写的带着自己感想的日记？这样的想法完全是缺乏常识的想当然，但居然那么多人相信，这是我觉得最不可思议的事。</p><p><strong>财经十一人：胡锡进先生认为《武汉日记》国际版“不会是一般的纪实文学交流，它一定会被国际政治捕捉到。很有可能的是，在未来的风浪中，中国人民，包括那些曾经支持了方方的人，将用我们多那么一分的利益损失来为方方在西方的成名埋单。”对此您如何看？</strong></p><p>方方：胡总编说出这样的话，起到了煽动无数人仇恨我的作用。因为他告诉公众：我是牺牲了他们的利益来让自己在西方出名。这是阴险恶毒地罗织罪名，是指责我出卖了中国和中国人民，这个帽子何其之大！他说这话的后果现在大家也看到了。好多人果然行动起来把我骂得狗血淋头，不光有了文艺节目式的表演，还有了上门收拾我的企图。</p><p><strong>财经十一人：有人猜测《武汉日记》会得今年的诺贝文学奖或者诺贝尔和平奖，您觉得有这种可能吗？作为一个职业作家，您如何评价您日记里的文字？您觉得自己跟哪项奖更沾边？</strong></p><p>方方：这纯粹是瞎扯的，赚流量而已。书都没有出版，谈什么获奖？绝对没有这种可能性。我最初记录时，根本就没有想过出版的事。因为这就是在微博上随手写的，连草稿都没有打，因为我的定位就是记录，所以非常随意。那时看的人也不多，自己的平台，自己随便写写而已。事情的走向，出人意外。国内连书都出不了，就不要谈任何一个奖了。而国外，又能有什么奖。好在本来就是自己的随记，能出书已经是意外收获。所以我根本不考虑也不介意什么奖不奖的事。</p><h2 id="“我记录大多数媒体忽略的，每一件事都真实”">“我记录大多数媒体忽略的，每一件事都真实”</h2><p><strong>财经十一人：有不少人质疑日记中的一些细节和事实不符，包括使用二手的信息和图片，还有人统计，日记中，“听说”、“好像”、“一个朋友告诉我”这样的词句出现频率特别高，您对此怎么看？</strong></p><p>方方：对我有一种说法，叫作“足不出户”、“道听途说”。好像每一个人，都必须实地调查，才可以写出来。反问一句：你们并没有到我家来，又是怎么知道我是“足不出户”或是“道听途说”的？理由很简单，你们是从网上得到的信息。既然你们可以从网上得到信息，我为什么就不能从网上得到信息？</p><p>互联网给我们极大的沟通方便，完全可以做到足不出户，获知信息。尤其像我这样的人，我在武汉生活了六十多年，小学中学高中大学、当工人当记者当作家当主编，我认识的人生活在武汉市的各个层面，这些人很多在我的微信朋友圈里，我要知道信息很难吗？我从熟人朋友处获得的信息，会比记者采访的信息更不准确吗？一个人，他对自己熟人讲的实话多一些，还是对记者讲的实话多一些？包括官员，他们在台面上对着记者讲的实话多，还是跟自己相熟的人讲的实话多？这些不都是常识嘛。</p><p>我当过两届湖北省青联副主席，两届全国青联委员，从省人大常委到省政协常委，我开了整整二十五年常委会，你们觉得我的信源会少吗？其实，更多的内容我没有写，我怕吓着大家，我记录的，多是已经公开的事。</p><p>在今天这样一个互联网时代，还有人说我足不出户得到的信息都是假的，说这话的人，对互联网的强大能力难道不了解？那些比我懂互联网多得多的人也以此为武器来攻击我，这是愚蠢，还是坏？</p><p>什么叫二手信息？如果我用的是二手信息，其他人可能是三手四手五手了。一个相同的视频，大家都看到了，记者也看到了，记者写出来就是一手，我写出来就是二手？这个没道理呀。</p><p>至于那张二手手机照片，纯粹就是构陷了。我的文字没有配任何一张照片。那张照片是为了诬蔑我加上去的。而我的确看到一张一地手机的照片，是与那张完全不同的照片。</p><p>文字统计就更可笑，十多万字的东西，那几个词语本来没那么突出，可有人刻意把它们拎出来说事，他们干嘛不把“的地得”拎出来，那更多呢。</p><p>至于为什么不写告诉我信息的人的名字，就是担心这些人受连累。在湖北，人际关系复杂，尚且在位的某些人是很恨我的，我不愿意给同事朋友造成麻烦，所以都虚写了。但重要的不在于听说或是朋友说，而在于说的事情是不是真的。</p><p>而我现在可以告诉你：除了很小的地方有错（次日已澄清的不算），我写的每一件事都是真实的。</p><p><strong>财经十一人：您在2月13日的日记里写道：“更让我心碎的，是我的医生朋友传来一张图片。这让前些天的悲怆感，再度狠狠袭来。照片上，是殡葬馆扔得满地的无主手机，而他们的主人全已化为灰烬。”这个细节遭到的质疑可能是最多的，您怎么回应？</strong></p><p>方方：这也是我一直想说明的。我的记录中，反复提到医生朋友。我要说明的是，我的医生朋友是四个人。来自三家大医院，是四个不同专业的领军人物。为了不给他们的工作带去干扰，所以，我统一用“医生朋友”代替。</p><p>其中一位医生朋友传给我一张照片，就是那张一地手机的照片。但是，我并没有贴照片出来，在文中也只是一句感想。有人为了诬陷我，找了一张二手手机市场的照片，配上我的文字，然后说我看到的就是那张照片。</p><p>我发出声明后，那人删了他的微博，也道歉了。可惜，谣言却传播出去了，无论我怎样解释，仍然有很多人至今还认为那张二手手机的照片是我配发在日记中的。</p><p>然后，他们要求我必须亮出真实的照片才能认定我不是谣言。这就可笑了，你们造谣，我凭什么要按你们的指示自证清白？当然，未得到医生朋友同意，我也无权披露这张照片。对我越来越多的叫骂，正是从这张照片开始。他们的诬陷成功了。</p><p>以武汉疫情早期的情况，以及后来大家了解的情况，难道人们还不相信有这样的照片吗？就手机的事，湖北也有专家们写了内参，希望保存好那些手机，疫情之后，交给电信部门，尽可能通过其中信息找到主人，如果实在找不到的，以后作为历史证物留在纪念馆里。其实，关于这张照片的事，我已经两次说得很清楚了。但是他们愿意听吗？估计我这次跟你们说了，他们仍然不会听。</p><p><strong>财经十一人：广西援鄂的梁护士尚在救治过程中，而您的日记称她已经去世。网友质疑您的日记较为随意，不够真实，对此您有何回应？在国外出版的日记中，这段内容是否已经删去？</strong></p><p>方方：不需要删除，因为我第二天的日记就作了澄清。他们不看日记，只是听说，所以他们天天提这件事，却绝口不提我第二天即把这个过程说清楚了，并且还为此作了道歉。这些他们从来不提。就像我一直澄清，说我不是厅级干部，但他们明明知道，却每次写文章，都一定要写我是厅级干部。他们就是要利用普通百姓“仇官”和“仇富”的心理。</p><p>我在记录中，多次谈到我住在文联大院内，这是职工宿舍。他们却咬定我是“住在豪宅里写封城日记”。他们要不要拿这栋上世纪八十年代修建的房子去与其他作家的房子作个比较？春天来了，白蚁又开始活动，我每年都要为白蚁的事烦心，今天恐怕更甚。</p><p><strong>财经十一人：很多人认为您日记里情绪多于思考，多于您的个人经历，仅能反映一种社会心态，是“耳闻的历史底稿”，并无记录之功能。您同意这种说法吗？</strong></p><p>方方：不同意。其实写日记的初衷，就是为写《封城记》作一份记录。所以，我以记录为主，记录我有可能会写的事情，而不是所有事情。当然也会在记录的同时加入自己当时的感想。既然是记录和随想为主，所以肯定没有深入思考。</p><p>有几篇是有情绪的。前期的情绪是因为疫情给人民带来太多伤害，那些惨烈的事情，我也是人生第一次近距离感受到，很多内容我都没敢写，没敢写不一定心里没有，是忍着。</p><p>“耳闻的历史底稿”这样的用词，在我看有点搞笑。我想我更多的是现场记录，尽管我没有在小现场，但我在大现场，这个现场就是武汉。视频和音频，以及各种微信和电话，市民的生活，其实天天都在眼前。我作的是实录，我的实录有所选择。</p><p>还有一条，大多数媒体记录过的宏大场景，我会尽量绕开。这很简单，如果以后我需要那些，可以轻易查到。而媒体忽略的，我要记下，因为这些细小的个体的东西，或许不记下就永远流逝了，比如媒体不会记录的常凯一家，比如我的同学，我邻居的亲人以及那一个个死去的人。</p><p><strong>财经十一人：有哪一篇或者哪几篇日记是您个人觉得很特别的，或者说很满意的？为什么？</strong></p><p>方方：有一篇写灾难的，是我那天很生气。他们攻击我的言论，是完全不顾忌我所处在什么时间什么状态下。所以在一怒之下，我来告诉人们，灾难是什么。灾难和他们日常想象的不一样，这种对灾难的感受，也只有在灾难之中才能真正体会到，在身边不断有信息传来某某死了，才能体会到。</p><p><strong>财经十一人：您如何保持内容的独立性？是否有意识地在日记中设定议题迎合您的目标读者？</strong></p><p>方方：不存在独立性的问题，也没有目标读者，因为我的定位就是记录，没有其他意图，而且我也从来没有想到过有那么多人会阅读。知道有这么多人阅读，我的直觉首先是“太奇怪了，太反常了”。</p><p><strong>财经十一人：期间有多篇日记遭删除，被删稿是什么感觉？您有没有分析过那类日记容易被删，之后的写作是否有意识地避开了“雷区”？</strong></p><p>方方：遭删稿，对任何一个作者，感觉都不会好。而且不知道原因，所以会有愤怒。后来微博被封，我找二湘帮忙，用她的公众号来发表，自然也担心她被封号，肯定会小心翼翼很多。我也不想她的号因为我而被封掉。</p><p><strong>财经十一人：您是在什么心态下写日记的？</strong></p><p>方方：60天时间，随着疫情的变化，心态自然有变化。之前有愤怒无助悲哀，后来疫情缓解，心情慢慢平复，而且那时知道很多人阅读，也会鼓励大家继续坚守。遇到攻击者，自然也会通过自己的记录进行反击，这都是预先未曾想到的。比方，准备写到第54天停笔，却来个高中生写信。那么龌龊的信，但却流传那么广，所以只能回复。</p><p><strong>财经十一人：这段时间有不少知名学者对您的日记内容发表评论，有哪篇评论您特别认可？有哪些您觉得非常不理解或是匪夷所思？</strong></p><p>方方：很多学者支持我，是我的荣幸，但有些公众号说过头的话，我也蛮尴尬。我非常感谢那些在我被许多人攻击时，仍然支持我的朋友，虽然很多我都不认识。</p><p>不能理解的事实在是太多了。我只不过人在疫区，为了写《封城记》而作准备，记录了一些封城中的日常生活以及自己即时的感想，怎么会引发他们对我的如此仇恨？</p><p>这种仇恨仅仅从日记文本身来看，是说不通的。至于扒我家几代人，扒我的房子，公开我的家庭住址什么的，简直不可思议到极至。冒高中生名写信，更是低劣下作。一直到现在，他们依然攻击，发动不明真相群众攻击。我的书翻译成外文，这有什么问题？我正在写的过程中，有人来约，我为什么不能给？重要的是，我写的内容是什么，很多攻击者看都不看。</p><h2 id="“我不是正厅级，家人基本都在国内，没有六套房子”">“我不是正厅级，家人基本都在国内，没有六套房子”</h2><p><strong>财经十一人：有人质疑，您身为正厅级干部却批评体制，是吃里扒外。湖北省作协主席相当于厅级干部吗？</strong></p><p>方方：我已经反复说了，我不是正厅级干部，我的作协主席是兼职主席。我拿的工资是职称工资，如果公务员分房，我也是没有资格的。我也想住公务员小区呀，那里一切服务都很周到，有暖气有食堂，吃菜又便宜又安全，但是我也没有资格分到那里的房子呀。公务员人人都有车贴，正厅级似乎每月有一千好几百，我也是没有的。</p><p>我当省作协主席多年，就算有天大的事，我也没有资格要求召开一次主席团会议，开不开主席团会，这得由书记说了算。再三要求，都不可能。那么，如果没有正厅级的权力和待遇，那是以什么来显示正厅级呢？所以，我只算一个兼职主席。</p><p><strong>财经十一人：日记陆续发表后，您的个人生活有受到影响吗？包括家人、朋友。</strong></p><p>方方：有一点影响，一是安全问题，受到暴力威胁，尤其家庭住址被暴露，自然要小心一点。二是回复各种提问，也有一堆媒体采访提纲，所以事情也多一些。我的家人全体支持我，无论我父亲家族还是我母亲家族的人，都支持我。这点很幸运，也很温暖。他们的生活跟我的写作没有关系，所以，对他们的生活不曾有任何影响。他们为我感到骄傲。</p><p>我择友也是很严的，谈得来的，三观相近的，才可能是朋友，所以我的朋友几乎一律支持我，没有一个对我提出批评（当然也有提建议和疑问的）。或许有悄然疏远的，这样也很好。</p><p><strong>财经十一人：有人说你“待在豪宅里足不出户连次志愿者都没当过，居然好意思代表武汉人民写日记”，并把你和同是武汉作家的池莉做对比，认为池莉更有资格代表武汉人民。您对此怎么看？</strong></p><p>方方：你们也看到，这就是攻击是不是？我从来没有说过我代表武汉人民。</p><p>疫情期间，我待在文联大院里，这房子是单位分给我的宿舍，属于上世纪八十年代的建房。二十多年前分配时，排在我前面的六个人都没有要，轮到我，于是我要了。这房子建筑面积大约是137平米（我自己后来封了阳台，面积增大了一些）。他们要说我躲在豪宅里，我也就由他们好了。其实，在湖北，作家有别墅的人不少吧？我今年65岁，糖尿病人，而且腰椎尖盘突出刚刚恢复，可以坐下来写几个字，他们好意思让我去当志愿者？</p><p>当然，池莉也不年轻，她怎么当的志愿者我不知道。但是，我是退休人员，退休前也只是一个作家，从来都不是干部。而池莉目前还在武汉市文联主席的岗位上，作为在职的正局级公务员，她应该有自己的工作职责，恐怕不会仅仅只去做做志愿者，她应该还做了更多的工作。拿我们俩来作对比，是挑唆手段。他们决定要推倒一个人时，不择一切手段进行诬蔑，而他们想要为我树立一个对立面时，也同样不惜一切手段美化。这都是害人的手段。而实际上，我们俩都是受困的武汉人一员，所作所为，都再正常不过。</p><p><strong>财经十一人：有人把您过去几年发的微博内容都翻出来讨论，这种行为您怎么看？比如说，有人在您的微博上翻出了您针对美国小孩说的“杀光中国人”评论，当时您说：“小孩说话好玩，别太认真当回事”，有人因此抨击您崇洋媚外。</strong></p><p>方方：他们就是靠翻烂人家微博起家的。靠干这个，已经整了很多人。也让无数人见他们即退避三尺。我们单位的一个作家，还被他们中的某人公开到网上冒名诬陷，都是翻微博截屏寻找什么反动内容，手段真的很下三滥。有时候，在微博上看到什么内容，有些人会随意转发，这种转发，有些情绪化，并没有深思过。所以，转发微博或发几句牢骚，都不应该成为打倒一个人的证据。而我的微博几年前就被他们翻烂了。他们总觉得可以从中找到攻击我的东西，因为他们已经靠这个打倒了好几个人。</p><p>可是他们找到我的什么了？找到一个我对美国小孩子言论的评论，那孩子5岁，我觉得不管他说什么，都不要太当回事。5岁孩子的话难道不要包容？然后又找到我批评中国青年的一些话，于是得出结论，我对美国人好，对中国人不好。</p><p>他们用混淆的手法，无视美国的孩子只是5岁，中国的年轻人呢？尤其是共青团员，多少岁？大多过了十八岁吧？对5岁的孩子是可以包容的，但18岁以上的年轻人呢？做了坏事，比方恶意举报老师，当然是需要严厉批评的。他们这种对比本身就说明问题。</p><p>对于国外，我用不着崇，也用不着媚。无论中国外国，做得好的，我都会喜欢，做得不好的，一样批评。价值判断不会因为国内和国外另有标准，但是可能会因为年龄大小有所变化。所谓“双标”，人人都会有。比如对幼儿和对成人标准肯定不同，对残疾人和对健康人标准也会不同，对老年人和对壮年人标准同样会有差别。</p><p>拿一个5岁孩子说的话和拿一个18岁以上人做的事来进行比照，这不是崇洋媚外，而叫爱护弱小。我一直呼吁大家要懂得常识，这就是常识呀。</p><p>但是他们翻烂我的博客和微博也就找到这点东西吧，还有什么？我写了十几年博客和微博，他们就挑出这点东西，反过来，如果我用同样的手段去挑他们的呢？真不知道会有些什么。当然，我也不屑这样的手段，我不会让自己成为他们那样的人。</p><p><strong>财经十一人：有人说你的家人大部分都移民国外连中国人都不是了，你就是在“消费（中国人）的苦难”。听到这些指责您愤怒吗？您对此有何回应？</strong></p><p>方方：我是懒得理他们。谣言而已。但悲哀的是，如果我不作“交代”，这样的谣言就永远没个完。</p><p>我家有几口人？什么人算我的家人？我自己的小家，全部在国内。好，现在把我三个哥哥的家都算作我的家人。那么，我们四家人中，只有一个侄儿和一个侄女在国外，其他所有人都在国内。这个比例是多大？这是大部分都移民了吗？而我女儿跟我一样，喜欢武汉，她哪儿都不想去。</p><p><strong>财经十一人：利用厅官身份让警察在封城期送侄女去机场是网上对你的激烈批评之一，对此事您之前辩解过了，但没有说服反对者，这里您还想再回应下吗？</strong></p><p>方方：这件事我已经说得非常清楚了。相当于，我有几个熟人是警察，他们中的一位利用休息时间送我侄女去机场，如果这也叫特权，非特权又是什么？我不理解，你说我的“辩解”没有说服我的反对者，你是否可以再问详细点，哪一点没有说服？</p><p>我再做次详细说明：第一，我侄女是新加坡侨民，接侨是中新两国说好的事，不是以权谋私违规出城；第二，武汉所有交通工具停运，侄女无法去机场，我决定亲自送她；第三，当天下了私车禁行令，但有些私车仍然可以通行，因此我向洪山交管局相熟的警察问询我的车能不能通行；第四，虽然我的车可以通行，但我的警察朋友认为我年龄大了，又是晚上，来回路程也长，而肖警官正好休息，让他帮我跑一趟；第五，我跟肖警官所有的联系，都是短信，这些记录全部都在。肖警官不是官，是辅警。我出于礼貌，文字上对所有警察都称为警官。</p><p>我再次说明了，但那些想要攻击我的人仍然会抠出东西来攻击，他们就是为了攻击而攻击。</p><p><strong>财经十一人：线上争议热火朝天，线下的作协同事们对您是什么态度？有没有政府相关人士找过您？有朋友因此疏远您吗？</strong></p><p>方方：我退休了，与作协同事联系不多。但我知道，支持我的人应该是很多的，只是不方便公开表态，因为那些在暗中当操盘手的人，还在台上呆着。所以，出于保护，我也希望他们不作声。</p><p>官方有人找过我，但是官方的人大多有文化，我谈了我的观点，至少从表面上看，他们对我的观点表示了认同。</p><p>我的朋友本来就不算多，他们了解我是什么样的人，所以非但没有疏远我，而是发声力挺我，这真是让我很感动。当然也有属于熟人类的，有些害怕，会有疏远一点的架式，这个我可以理解。</p><p>几个我曾经给予过帮助的人，也有些攻击我的言论，还是可以理解，因为有些人一直都知道说什么样的话对他们更有利，这些人反正也是我几乎不交往的人，所以失去也一点都不可惜。别人的选择不用介意，尊重这种选择就是了。</p><p><strong>财经十一人：您的日记引发了热烈讨论，无数个微信群因此而撕裂，您怎么看您日记引发的社群对立？为什么会有这么严重的社会撕裂？您认为双方还有求同存异的空间吗？您会给双方什么建议？</strong></p><p>方方：我想不出来有什么求同存异的空间。他们的价值观跟我完全相悖，也缺乏人类的基本同情心，比方我在疫区写这些文字，他们也并没有等我度过难关再来批判，而是在我被困在家时，就不顾一切地开始批判、开始构陷。至于受他们影响的一些年轻人，他们还年轻，没有经历，人生的路还长，而且他们只是受人蛊惑而叫骂，是为骂而骂，也从来没有看过我写了什么。他们缺乏的只是独立思考能力，毕竟他们还要成长。这个不需要我跟他们计较，与他们计较的，将是他们自己未来的人生。</p><p><strong>财经十一人：有人爆料，您把国有土地变成了别墅用地，自建了大别墅，办理了产权证，这是造谣还是事实？您在武汉一共有几套房产？有人说您有6套。</strong></p><p>方方：当然不是事实。2003年，当年江夏区藏龙岛，还是一片荒野之地。至少我去的时候，汽车的底盘都嫌低，过不去，要到处绕路。开发区邀请几个画家入驻那边，画家们拉我加盟，我才参与进来。当时是四个画家加上我，成立一个艺术村。开发区自然是要我们来提升整个区域内的文化品位。</p><p>这样的事，全国各城市都有人在做。</p><p>四个画家都是著名人士，唐小禾老师更是名声在外。他以前画油画，后来画壁画。湖北省和武汉市两级政府都邀请唐老师夫妇做壁画，唐老师将要画的是“中山舰纪念馆”入门处的壁画，而唐老师的夫人程老师，要画的是秭归新建的屈原祠的壁画。这都必须要有大的工作室。所以，开发区与当地的商业小区协商好，划出八亩地来给我们五个人（这里面并不包含他们反复提到的刘丹丽。印象中，我们从头到尾都与刘丹丽没关系）。</p><p>可能是地价太高，其中一位画家退出，后来剩下四个人。因为画家都需要工作室，而作家不需要，所以我的面积略小一点，应该是一亩三分地（不记得公共地算没算）。并且也不是他们说的9万一亩，而是13.5万一亩。我印象中总价是19万多（这些票据都还能找到）。</p><p>在当时，那么偏远、又是成片荒野的地方，19万应该是很贵的。另一处画家比较集中的“创业农庄”（也在江夏）我也曾去看过，是3万元一亩地，一个人可买三亩。但我很喜欢与唐老师这边的几个朋友为邻，所以选择了这边贵的。我们都不希望以后有麻烦，所以宁可多出点钱，也要保证是合规合法的。</p><p>我的房子是一栋两层楼的，400多平米。设计时，我曾要求不要超过360平米，我也不喜欢房子太大了。但设计师还是弄得超过了四百平米。所有的手续完全合法。他们可以通过国家任何一个机构去查。</p><p>我没有六套房子。</p><p>在武汉，除了这套别墅，单位这个八十年代建的宿舍算一套。另外，我朋友在汉口设计的房子，拉我们参观购房。这个小区正好在我小哥上班的旁边。时间应该是2003年左右，考虑到当年我小嫂在深圳工作，我小哥的住所离他的单位很远。他的身体也不算太好，我即买了一套，约79平米。精装房，让小哥去那里住着方便一点。</p><p>武汉房价在2009年以前一直很低。这套房子原本是精装修，把家具配好，一共花了50万元。这些，都可以去武汉市房管部门查。</p><p>我在海南还有一套房子，是同学们相约老了去那边过冬而买的，127平米左右吧。正如他们“人肉”的，在临高县。2012年买的，是我的大学同学帮我挑的房，我都没去看。当年临高的房价如何，他们自己可以去查。</p><p>我写这些，脑海中浮出我父亲当年写交代材料的场景，心里满是悲凉。这原本是我的私事，我无须向公众交代这些，但是我不说，谣言就永远不止。我说了，谣言恐怕仍然不会停止，因为他们根本不听你说什么，他们只在意自己要说什么。他们表达的就是：我们就是要恨你，我们就是要造你的谣，我们要骂你，没什么理由。尽管我知道这样，我还是怀着这份悲凉，把这些都说清楚。我依然等着他们用这些老话来继续攻击。</p><p>还想说的是：我从武汉大学毕业，工作了这么多年，出版了一百多本书，也卖了不止十部影视版权，每年都有作品获奖，所以这些稿费、版税和奖金，足够我过上体面的生活，甚至可以买更多的房子。其实，国内作家中，比我富足的人应该更多吧？湖北作家比我富裕的也多的是吧。</p><p>一介文人，有了自己的书房，可以有安静的环境写作，这不正是说明国家的强盛富裕吗？而我努力工作，勤奋写作，让自己有了安宁的晚年，不正是我们提倡的励志吗？</p><p>2001年，我在作协买下第一辆车时曾指着车跟同事吹牛，说这里面每个轮子每个螺丝，都是汉字！是我一个字一个字写出来的，这就是我的自豪。</p><h2 id="人类应当有共同的价值观">人类应当有共同的价值观</h2><p><strong>财经十一人：这期间您情绪崩溃过吗？</strong></p><p>方方：没有，从来没有崩溃过。因为对手水平太低，而且无一不是造谣。一些老百姓跟着骂我，是建立在他们的谣言上，只要谣言一破，民众自己会明白。就算民众永远不打算明白，那也是他们自己的问题。这是一场正与邪的较量，影响的不是我，而是中国的言论生态环境。那些挑唆批判我的人，大量使用反革命、汉奸、卖国贼、反党反社会主义这类词汇。这是我们所有人都要警惕的事。</p><p><strong>财经十一人：您对武汉是一种什么样的感情？疫情是否使您对武汉有新的认知？</strong></p><p>方方：我在武汉生活了63年，连续离开它的时间从来没有超过50天。我一直在这里生活，求学以及工作，相当于根扎在这里，我从来没有离开武汉的念头，因为我觉得自己特别适应在这座城市生活。</p><p>武汉人，也相当于我的亲朋一样。不管走到哪里，一听到武汉话我就觉得亲切。疫情早期，看到那么多武汉人四处求救，听到那么多人去世的消息，我却无力提供任何帮助，那种无助和难过非常折磨人，也是人生从来没有过的残酷体验。</p><p>至于新的认知倒也没有更多。武汉人的表现，就跟我一向认识的武汉人一样。很快他们就会恢复元气，武汉也会像过去一样生机勃勃。只是，我还是会想，那些失去亲人的人们，他们将怎样走出难关？</p><p><strong>财经十一人：人类有没有、需不需有要共同的价值观？您认为哪些价值观是人类应当共同拥有的？不管是哪个国家、哪个民族、那种肤色。</strong></p><p>方方：惜小怜弱、悲天悯人、正直诚实，勤奋善良等等，可以写出很多，这些都是人类共同的情感、共同的美德，应该是人类共有的。</p>]]>
    </content>
    <id>https://editst.com/2020/interview-fangfang/</id>
    <link href="https://editst.com/2020/interview-fangfang/"/>
    <published>2020-04-21T09:54:24.000Z</published>
    <summary>
      <![CDATA[<p>财经十一人对方方的专访</p>
<p>文/刘以秦 编辑/马克</p>
<p>1月25日，大年初一，作家方方发出第一篇日记，她写道：“不知道这一条能不能发出来，先发了试试吧。”</p>
<p>随后两个月，方方发表了60篇日记，几乎每一篇都受到广泛关注，但公众对方方的态度在这60天里出现了明显变化。</p>
<p>早期，大家将方方日记当做关注疫情发展的一个窗口，一些人每天都等着方方更新日记，还有不少人在日记下面发布求助信息。一位读者留言称“方方日记是我们在郁闷中的一个呼吸阀”。方方说，看到这句话，心里的感动真的是无词形容，“这些读者是我在封城生活中最大的温暖。”</p>
<p>湖北作协副主席刘川鄂接受财经十一人记者采访时表示，方方身处疫情中心地，每一天经历着感受着，“把所闻所感记录下来，很有责任心，很有担当。”</p>
<p>后来舆论分裂，坚挺方方的人依然众多，质疑方方日记充满道听途说的假消息、认为方方日记在传递负能量的人也不计其数。</p>]]>
    </summary>
    <title>专访方方：如果我不“交代”，谣言就永远没完</title>
    <updated>2020-04-30T10:49:13.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="转载" scheme="https://editst.com/categories/%E8%BD%AC%E8%BD%BD/"/>
    <category term="新冠病毒" scheme="https://editst.com/tags/%E6%96%B0%E5%86%A0%E7%97%85%E6%AF%92/"/>
    <category term="财新周刊" scheme="https://editst.com/tags/%E8%B4%A2%E6%96%B0%E5%91%A8%E5%88%8A/"/>
    <content>
      <![CDATA[<p>在一群精英医生带领下，武大中南医院于遭遇战及早预警，于相持战接管定点医院和最大方舱，于决战主持雷神山医院，以专业精神从头打到尾，并为避免下次公共卫生危机提供启示</p><span id="more"></span><p><img src="cw900.webp" alt=""></p><p>「1 月 2 日，两例不明原因肺炎患者的 SARS 检测都是阳性。」3 月 24 日，在武汉市郊的江夏区，雷神山医院临时搭建的板房内，54 岁的武汉大学中南医院院长兼雷神山医院院长王行环教授向财新记者回忆起 80 多天前收到的检测报告，依然眉头紧锁，「我感觉到要出大事了，SARS 回来了。」</p><p>17 年前还是广东省人民医院泌尿外科主任的王行环，对 SARS 的惨痛教训记忆犹新，他的电脑里保存着一份 2003 年 SARS 大事记。武汉「封城」前，他多次将这份大事记打印下来送给相关政府部门，或者通过微信发给他能接触到的官员。「但是我担心的事情还是发生了。」</p><p>作为武汉大学的附属医院，中南医院在这座早年开埠的江城中历史算不上悠久，3900 名员工和 3300 张编制床位的规模也不算大，然而，就是这样一家由一群精英医生管理的医院，在这场病毒来势之汹、疫情传播之烈、范围扩散之广、全社会面临挑战之大都史无前例的非常战争面前，秉持「大医精诚、敬畏生命」的医学专业素养，早预警，早隔离，早准备，在抗疫战中承担了武汉市最大救治量的任务，不仅将本院变成了整座城市最大的传染病医院，还以一己之力同时承担着四家医院的运行，最多时提供了 5400 张床位收治新冠肺炎病人。</p><p>王行环把武汉抗疫按照毛泽东《论持久战》中对战争周期的阐述，划分为四个阶段：战略准备期、战略防御期、战略相持期和战略反攻期。在这个没有硝烟却处处暗箭的战场上，中南医院从头打到尾，和 9 万武汉医护人员、4 万医疗救援队员以及 900 万武汉人一起拯救了这座城市，为全国乃至世界争取了宝贵的时间。</p><p>但这无疑也是一场惨胜。50008 名新冠肺炎确诊患者、2575 名死亡病人，还有一段没有声音和颜色的岁月，武汉付出了过于惨重的代价。官僚主义、监管失位、忽视公共卫生，在凶猛的病毒进攻面前显露无遗。中共中央总书记、国家主席习近平在 3 月 10 日来武汉考察新冠肺炎疫情防控工作时的讲话中指出，要补齐治理体系和治理能力短板，「这次新冠肺炎疫情防控，是对治理体系和治理能力的一次大考，既有经验，也有教训。我们要放眼长远，总结经验教训，加快补齐治理体系的短板和弱项，为保障人民生命安全和身体健康筑牢制度防线。要着力完善公共卫生应急管理体系，强化公共卫生法治保障，改革完善疾病预防控制体系、重大疫情防控救治体系，健全重大疾病医疗保险和救助制度，健全统一的应急物资保障体系，提高应对突发重大公共卫生事件的能力和水平。」</p><p>王行环对财新记者表示，习主席亲自指挥的举国抗疫已在国际上率先取得成功之际，重要的思考是我们从灾难中能学到什么、需要做哪些改进，既包括医学也包括各国治理，未来新的疫情来犯之时，于早期就抑制住它。「从国际的维度看，全球的政治家、专业人士和民众都缺乏应对如此大规模疫情的经验；从历史的维度看，人类前两次大瘟疫分别是自 1347 年的黑死病和自 1918 年的大流感，全球各国新冠肺炎疫情的演变可算人类第三次大瘟疫，前两次间隔 500 多年，本次间隔仅仅 100 年，人类作为共同体，在传染病面前是强大了还是弱小了呢？人类医学、科技、文化与各国国家实力的巨大进步该反思什么呢？难道『人类从历史中获得的惟一教训，就是从不吸取任何教训』吗？」</p><p>「另外，人们对这种新发传染病病毒 2019-nCoV 的认识还十分有限，比如法国的新冠肺炎患者嗅觉味觉丧失是重要症状之一，美国的临床病例也发现了嗅觉味觉障碍，但中国 8 万多新冠病例却基本没有听说类似症状。」他说，「一方面，我们还在坚守阵地，把最后一批新冠肺炎患者送出医院；另一方面，我们这一两个月与几十个国家的医生、学者举行了上百场视频连线，向国际同行介绍我们在快速诊断、医疗救治、疫情防控等方面探索的经验。我们的这些努力，包括对这场抗疫战争的回顾和国际学术交流，目的都是为了向前看，推动我们国家和国际社会共同完善传染病防控救治体系和公共卫生应急管理体系，如果再有下一次病毒侵袭，人类能防得住。」</p><p>如何避免下一场重大公共卫生事件灾难重演，这并非一个人、一家医院的力量能够达成的，但透过中南医院的故事，我们至少能窥见如何做得更好。</p><h2 id="遭遇战：摸清「敌情」">遭遇战：摸清「敌情」</h2><p>武汉大学中南医院是武汉四大医院之一。华中科技大学同济医学院的两家附属医院——同济医院和协和医院都位于汉口，距离华南海鲜市场仅三四公里，而武汉大学的两家附属医院——人民医院和中南医院均位于武昌，与华南海鲜市场隔着长江，并不是最早收治新冠肺炎病人的医院。</p><p>中南医院医务处处长潘振宇回忆，他第一次知道「不明原因肺炎」，还是在 2019 年 12 月 30 日下午 4 点收到一份《市卫健委关于报送不明原因肺炎救治情况的紧急通知》，要求各医疗机构清查上报近一周内收治的与华南海鲜市场相关的不明原因肺炎病例。潘振宇立即报告院领导。当天晚上，中南医院的急救中心、呼吸科等重点科室即开始排查与华南海鲜市场有关的相似病例。</p><p>12 月 31 日上午 9 点，中南医院副院长袁玉峰带领医务处、门诊办公室、院感办、公卫科，就不明原因肺炎防控情况开展院内督察，此时接到呼吸科电话，报告发现两例可疑病例，两人均有发烧、咳嗽及肺部磨玻璃症状，其中一人虽然家住武昌，仔细询问后得知患者是华南海鲜市场的鱼类批发商，另一人与华南海鲜市场没有直接接触史，但有在华南海鲜市场的商贩曾经去过他家。</p><p>中南医院立即给武昌区疾控中心及武昌区卫健局医政处报告，同时在院内启动不明原因肺炎防控工作小组，新建「肺炎应急」微信群。当天接近中午时，袁玉峰召开工作小组会议，要求在全院范围重视不明原因肺炎的监测、报告和疑似患者隔离工作，同时筹划加强发热门诊的排班，必要时进行扩大改建，并要求医院检验科主任李一荣教授采购检测试剂盒。会后李一荣向中山大学达安基因股份有限公司 (达安基因，<a href="http://002030.SZ">002030.SZ</a>) 订了两盒 SARS 检测试剂。达安基因是以分子诊断技术为主导的生物制品公司，该公司一位张姓负责人向财新记者证实，12 月 31 日他们向武汉发去三盒 SARS 检测试剂盒，每盒 24 人份，其中两盒发往武大中南医院。</p><p>2020 年 1 月 1 日，中南医院呼吸科给两例疑似病人做了肺泡灌洗液采样。肺泡灌洗是一种清除肺泡内炎性分泌物、改善呼吸功能的治疗方法。对下呼吸道和肺部疾病来说，肺泡灌洗液中的病原体含量高于咽拭子。呼吸科主任程真顺教授告诉财新记者，当天他们将样本送往第三方检测机构武汉华大医学检验所做基因测序，希望利用华大基因的高通量基因测序技术找出病原体。武汉华大医学检验所是「基因测序第一股」深圳华大基因股份有限公司 (华大基因，<a href="http://300676.SZ">300676.SZ</a>) 的全资子公司。</p><p>1 月 2 日，程真顺就接到华大方面的电话，口头告知他发现了一种新的冠状病毒，与 SARS 基因序列同源性接近 80%。「SARS 的传染性很强，这个病毒与 SARS 同源性 80%，我立即意识到情况不妙。」程真顺说。同日，两名疑似患者的 SARS 试剂盒检测结果也呈阳性。程真顺立即将结果汇报给医院领导，医院又马上报给武昌区疾控中心和武汉市卫健委。当天下午，武汉市卫健委即派出三名专家来到中南医院会诊。随即两名病人转入金银潭医院。</p><p>与此同时，中南医院加大筛查力度，1 月 3 日又发现三个疑似病例。据王行环介绍，这是一个家庭聚集型病例，在神经内科住院的 92 岁老父亲率先发病，他的儿子、儿媳也先后住院，三人症状都和不明原因肺炎病例特征相似，但都没有华南海鲜市场接触史，SARS 试剂盒检测同样显示阳性。「这三人是聚集传染，而且最重要的是他们都没有与华南海鲜市场有关的流行病学史，我们就判断这个病肯定会人传人。」</p><p>作为武汉大学的临床医院，除了临床医疗，科研也是中南医院的重要工作。中南医院检验科主任李一荣告诉财新记者，1 月 2 日，医院和武汉大学病毒学国家重点实验室跨部门科研团队开始病毒样本微量建库、二代高通量测序及比照分析数据等工作，1 月 7 日凌晨完成病毒全基因组序列测定，1 月 7 日下午将检测结果报送中国疾病预防控制中心。</p><p>据央视 1 月 9 日报道，中国疾控中心病毒病预防控制所牵头的「武汉病毒性肺炎病原检测结果初步评估专家组」确定，病原体为新型冠状病毒，「截至 2020 年 1 月 7 日 21 时，实验室检出一种新型冠状病毒，获得该病毒的全基因组序列，经核酸检测方法共检出新型冠状病毒阳性结果 15 例，从 1 例阳性病人样本中分离出该病毒，电镜下呈现典型的冠状病毒形态」。</p><p>财新记者的调查显示，除了武大团队，此前至少有四个团队独立获得了新冠病毒的基因序列：2019 年 12 月 27 日，广州微远基因科技有限公司从一份 12 月 24 日武汉市中心医院送检的病例样本中组装出接近完整的新型冠状病毒基因组序列，1 月 11 日由合作单位中国医学科学院病原生物学研究所上传至全球流感病毒共享数据平台 GISAID；2019 年 12 月 30 日，中科院武汉病毒研究所收到金银潭医院送来的不明原因肺炎病例肺泡灌洗液样本，2020 年 1 月 2 日确定新冠病毒的全基因组序列，1 月 11 日上传至 GISAID；2020 年 1 月 3 日，华大基因对 2019 年 12 月底从武汉两家医院获得的三个样本病毒都完成了高深度的全基因序列测序；1 月 3 日，复旦大学附属上海公共卫生临床中心张永振教授团队收到合作单位武汉市疾控中心快递的一份武汉市中心医院病例样本，1 月 5 日凌晨检测出一种新型类 SARS 冠状病毒，并通过高通量测序获得了全基因组序列，1 月 11 日将全基因组序列信息共享到「病毒学组织」<a href="http://Virologic.org">Virologic.org</a> 网站。</p><p>李一荣告诉财新记者，武大病毒学国家重点实验室和中南医院研究团队直到 1 月 23 日才将新冠病毒的全基因组序列上传至 GISAID。「因为有关部门不允许私自做病原学检测，不得擅自对外发布有关病原检测或实验结果，我们发布信息很谨慎。」</p><p>中南医院呼吸科前主任、首席专家杨炯教授在 2003 年参加过抗击 SARS，这一次临危受命，退休后再次站到第一线。他说：「17 年前的 SARS 在发病四个多月后才查出病原体，现在我们的科技水平有了很大进步，临床医生们也更警醒，半个月内就发现了新冠病毒，可惜还是没有防住疫情大暴发。」</p><h2 id="传染病填报拉锯战">传染病填报拉锯战</h2><p>发现「敌情」立即上报，是预防传染病的关键。目前医院系统的传染病疫情报送大致可分为两种途径，一是网络直报系统，二是向属地卫健疾控部门报送纸质或电子传染病报告卡。</p><p>「网络直报系统」全称是中国传染病与突发公共卫生事件监测信息系统，自 SARS 后国家耗费巨资打造，由中国疾病预防控制中心具体运行。2014 年中国疾控中心一篇新闻稿显示，该系统历经十年发展，其规模已经位居全球第一，全国 100% 的县级及以上疾控机构、98% 的县级以上医疗机构、94% 的基层医疗卫生机构实现了法定传染病实时网络报告。</p><p>不明原因肺炎不是法定报告的传染病，但也在该网络直报系统「其他传染病」子项中，属于重点监测对象。根据 2007 年原卫生部印发的《全国不明原因肺炎病例监测、排查和管理方案》，医务人员发现符合不明原因肺炎定义的病例后，应立即汇报医疗机构，「医疗机构在 12 小时内组织专家会诊和排查，仍不能明确确诊的，应立即填写传染病报告，注明『不明原因肺炎』并进行网络直报」。</p><p>然而，多位中国疾控中心人士透露，1 月 3 日–10 日，武汉曾通过网络直报上报过不明原因肺炎病例，但后面忽然停了，直到 1 月 20 日新冠肺炎纳入法定乙类传染病按甲类管理后，才在 1 月 24 日左右恢复网络直报。</p><p>事实上，在湖北省新华医院、武汉市中心医院 2019 年 12 月 27 日–29 日相继向属地卫健疾控部门上报不明原因肺炎病例后，湖北省和武汉市卫健委 2019 年 12 月 29 日命令省市区三级疾控中心启动应急处置工作流程，12 月 30 日下午，武汉市卫健委向各医疗机构先后下发两份内部通知《市卫健委关于报送不明原因肺炎救治情况的紧急通知》《关于做好不明原因肺炎救治工作的紧急通知》，前一份提醒武汉市华南海鲜市场陆续出现不明原因肺炎病人，要求各医疗机构立即清查统计近一周接诊过的具有类似特点的不明原因肺炎病人，后一份则要求加强责任领导，规范医疗救治，严格信息上报，按要求及时向辖区疾控部门上报有关信息，并同时报送市卫健委医政医管处。这等于将不明原因肺炎疫情报送全部纳入属地行政官僚系统掌控之内。</p><p>传染病报告卡的属地管理上报流程，是根据原国家卫生计生委办公厅 2015 年颁布的《传染病信息报告管理规范》，不明原因肺炎在报告病种之列，在医生通过医院内部信息系统报告传染病病例之后，由医院专人收集并核对传染病报告卡，根据规定正确及时地完成网络直报和属地报卡。财新记者了解，目前属地报卡的流程是：医生发现可疑传染病例，首先要经院内专家会诊，不能排除时医院要向属地卫健部门报告相关病例，由卫健部门组织专家会诊，通知属地疾控中心进行流调和取样检测后，经卫健部门确认通知，医院才能正式向属地疾控部门网报传染病报告卡。</p><p>在中南医院，传染病疫情报告工作由医务处公共卫生科执行。潘振宇告诉财新记者，收到武汉市卫健委上述两份内部通知后，12 月 31 日院内梳理出了两名疑似患者，公共卫生科随即依据传染病报告属地管理规定，向武昌区卫健局和武昌区疾控中心上报。经过院内会诊、武昌区卫健局组织的区级专家会诊及武昌区疾控中心流行病学调查采样，详细询问了两名病人的发病经过和接触史，并留取患者咽拭子样本送武汉市疾控中心实验室。1 月 2 日和 3 日，武汉市卫健委通知中南医院将两名疑似患者相继转入金银潭医院，但没有提供采样检测结果，也没有答复如何进行传染病直报问题。</p><p>在潘振宇看来，早期卫健疾控部门对上报的病例比较重视，对中南医院发现的前五例都进行了流行病学调查和专家会诊。随着没有华南海鲜市场接触史的患者越来越多，他渐渐感到申请区级会诊越来越困难。1 月 4 日，潘振宇收到武汉市卫健委下发的一份白色封面的《不明原因的病毒性肺炎医疗救治手册》(下称白皮书)，手册中的第一份文件《不明原因的病毒性肺炎诊疗方案 (试行)》对「不明原因的病毒性肺炎」病例定义一共四条：发烧；具有肺炎的影像学特征；发病早期白细胞总数正常或降低，或淋巴细胞计数减少；经规范抗菌药物治疗 3 天，病情无明显改善或进行性加重。</p><p>该诊疗方案称，同时具备这四条，不能明确诊断为其他疾病的肺炎病例，定义为不明原因的病毒性肺炎；如果患者有华南海鲜市场接触史，满足前三条即可。华南海鲜市场当时被认为是此次新冠肺炎疫情的主要疫源地，早期确实大部分患者有华南海鲜市场接触史。但白皮书收录的第二份文件《不明原因的病毒性肺炎入排标准》，则比《试行诊疗方案》要求更为严格，不仅要有以上四条临床表现，更需要同时具备华南海鲜市场接触史者，才能纳入不明原因病毒性肺炎的上报之列。</p><p>「仅华南海鲜市场一条就排除了我们大部分疑似病例。」杨炯说，中南医院距离华南海鲜市场一二十公里，初期接收的疑似病例大多没有华南海鲜市场接触史，但具有明显的不明原因病毒性肺炎临床表现，然而区专家会诊拒绝认定他们属于不明原因肺炎，无法转诊至金银潭医院，亦无法再将样本外送进行基因测序。中南医院不得不让杨炯牵头院专家组对所有病人进行排查，同时在急救中心、呼吸科和 ICU 改建隔离病房，将疑似病人全部转入。1 月 8 日、9 日，隔离区住院人数先后达到 8 人和 16 人，1 月 10 日已增至 20 人。</p><p>急救中心是首当其冲的最前线。1 月 6 日他们接到一位从黄冈转来的不明原因病毒性肺炎病人，这位胡姓患者之前被多家医院拒收，当时已是重症病人，呼吸困难，氧饱和度低于 90%。经过专家会诊，中南医院决定接收，病人先在急诊抢救室过渡了一天，同时迅速改造 ICU 隔离病房。「收不收这个病人，我们讨论了很多。不收这个病人，他实在没地方去了；如果收这个病人，这个病很高概率是会传染人，得做好严格的隔离措施。最终我们还是决定收下这个病人。」中南医院重症医学科 (ICU) 主任彭志勇教授说。</p><p>1 月 7 日，那名黄冈病人转入 ICU 隔离病房。当晚彭志勇接到黄冈一家医院的电话，他们医院有个员工住进 ICU 了，病症类似 SARS，请他过去看看。「1 月 8 日，我到黄冈这家医院，看到那个病人我就知道也是新冠肺炎病患，他们科室还有两个人出现呼吸困难的情况，我就告诉他们要小心点，这个病是会传染的。他们按照我的指导把三个病人隔离了。」彭志勇说。ICU 收治这位重症病人的当日，中南医院再次向有关疾控部门上报，要求他们来采样检测。</p><p>有知情人士向财新记者透露，1 月 9 日，中南医院公卫科曾在网络直报系统上报填写了两例不明原因肺炎，系统显示提交成功，然而后来发现 1 月 9 日提交的网络直报资料被删除了。潘振宇对此不予置评，只是说：「我们医院层面肯定没有删除。」武汉一位区疾控中心人士向财新记者确认，这个直通中国疾控中心的直报系统，区、市、省三级卫健委和疾控部门都能看到属地医院在系统中报送的病例，但区和市一级无权删除。</p><p>财新记者获得的数据显示，1 月 11 日，中南医院公卫科向武昌区卫健局和武汉市卫健委一次性上报了 21 名疑似病例。严格按白皮书的入排标准，任何一个都不能算「不明原因病毒性肺炎」，但是中南医院专家组一致认为，从临床表现看，这些病例都是不明原因病毒性肺炎的疑似病例，潘振宇特意要公卫科负责上报的工作人员在 21 个疑似病例后注明为「医院检测病例」——这些病例最终如何认定不得而知。</p><p>1 月 12 日，武汉市卫健委派了一个三人专家组到中南医院。「专家组说临床表现确实有点像，但他们还是在讲入排标准那一套东西。我们就反映，标准太苛刻了，按照这个标准，很难有人会被确诊。」彭志勇说。</p><p>事实上，自 1 月 11 日武汉市卫健委第一次通报 41 例新冠肺炎病例，1 月 12 日湖北省卫健委又发布新的新冠肺炎病例上报精神：发现的病例首先要在院内完成各项检验和相关检查，经院内专家组会诊为不明原因肺炎后，再报区卫健局会诊并通知区疾控采样，经区、市、省级逐级检测，依然为不明原因肺炎后，经省卫健委同意才能进行病例信息上报。也就是说，比之前已经繁琐的属地报卡程序又增加了市省两级会诊和检测。</p><p>1 月 12 日–17 日的湖北省「两会」期间，武汉市卫健委的每日例行通报均称前一日「本市无新增新冠肺炎病例」。</p><p>随着时间推移，一方面没办法上报新增病例，另一方面，中南医院接收的临床疑似病人越来越多。1 月 12 日，中南医院住院隔离疑似病例达到 45 人，1 月 13 日增至 55 人，1 月 14 日为 62 人。「光我们一家医院的疑似病例就超过了武汉市当时通报的 41 个确诊病例。」王行环院长说，「但什么能报、什么不能报、填报成功与否，不由医院决定，我们只好全部按照传染病要求进行隔离和诊治，尽力做好医院的事。」</p><h2 id="提前进入战时状态：早隔离、早准备">提前进入战时状态：早隔离、早准备</h2><p>1 月 2 日两名呼吸内科病人 SARS 检测呈阳性，1 月 3 日又排查出一家三口聚集性感染，且三人均没有华南海鲜市场接触史，王行环预感「要出大事了」。他要求从即日起中南医院开启「战时总动员」，按照 SARS 级别防控「不明原因病毒性肺炎」疫情——这比 1 月 20 日国家防控疫情总动员早了 17 天。</p><p>战时总动员的第一项工作，就是改造并扩大发热门诊。负责门诊和急诊的中南医院副院长赵剡教授介绍，1 月 3 日，他们首先改造了医院的发热门诊。中南医院原来的发热门诊和感染科门诊连在一起，发热门诊面积偏小，医院不明原因肺炎防控工作小组商议后决定，把感染科门诊搬到门诊楼六楼，所有区域重新按照「三区两通道」的传染病院感要求进行改造，增加了诊室和留观病床。</p><p>1 月 4 日，改造好的发热门诊开诊，医务处组织 20 名经验丰富的内科医生作为第一梯队，承担发热门诊的工作，并制定发热门诊接诊流程，当天发热门诊接诊人数就达到 124 人，1 月 5 日又增加到 137 例。</p><p>45 岁的赵剡同时兼任中南医院急救中心主任，他在法国获得医学博士学位，曾任巴黎 Pitie-Salpetrere 医院急救中心副主任医师，2005 年被引进回国，将中南医院急诊科改造为国内第一家法国模式的急救中心。该中心于 2006 年 10 月正式投入使用时，时任法国总统希拉克和中国国务委员陈至立共同剪彩。2012 年，赵剡获得法国国家功绩骑士勋章。</p><p>与赵剡一样，中南医院院长王行环也还兼任医院泌尿外科主任。事实上，整个中南医院管理层 12 名成员，除了一位兼任党委副书记的纪委书记和一位总会计师，其他 10 人都是院内各科室的学科带头人、主任医师。党委书记张元珍教授是妇产科首席专家，党委副书记林军教授是消化内科主任医师，六位副院长也分别是神内、神外、急诊、肝胆、骨外和肿瘤科主任医师，就连所有医院里工作最忙、麻烦最多的医务处，处长潘振宇也是每周都要出门诊、上手术的骨科主任医师。长期在一线诊治，丰富的临床经验和医学专业知识，让他们敏锐地意识到一次严重瘟疫危险的逼近。</p><p>1 月 6 日，星期一，中南医院上午例行召开党政联席会，12 名党政负责人一致同意王行环提出的医院立即启动按 SARS 的诊疗和内控机制进行防控：要求立即改建扩建隔离病房：立即全院筛查不明原因肺炎疑似病例进入隔离病房，委派由感染科、呼吸科、重症医学科、急救中心和儿科等五大科室主任组成的专家组指导发热门诊和隔离病房的诊疗工作；立即由呼吸科主任程真顺牵头制定不明原因肺炎疑似病例院内报告及诊治流程，并制作相关诊疗方案的培训课件，通过医院办公系统分发给所有医务人员全员培训，规范各科室或部门相应诊疗流程，对疑似的发热患者「早发现，早隔离，早治疗」；立即采购 N95 口罩、防护服等安全防护物资及医疗设备。</p><p>中南医院急救中心副主任、湖北省急危重症移动 ECMO 支持中心主任夏剑介绍，1 月 6 日，中南医院急救中心的急诊重症监护室 (EICU) 率先改造成隔离病房，用木板阻断隔开，腾出 16 张床位，专门收治疑似不明原因肺炎病人。1 月 8 日，急诊隔离区入院 5 名疑似病人，第二天猛增到 12 人，到 1 月 10 日床位就已基本住满，陆续入院的新冠肺炎病人就留在急诊抢救室。两三天时间，急诊重症病房 16 张床位、急诊抢救室 7 张床位都住满了重症病人，留观室也塞进了四五个病人。最高峰时期，急救中心收治了 20 多个新冠肺炎病人，25 个急诊医生、50 名护士围着这 20 多名新冠肺炎病人 24 小时轮班转。</p><p>重症医学科的 ICU 病区也在 1 月 6 日开始大规模改造。中南医院 ICU 三个病区一共有 66 张床位，重症医学科主任彭志勇专门安排一个病区 16 张床位进行隔离改造。彭志勇告诉财新记者，当时有人说 ICU 床位有限，预留 16 张床位有点浪费，「我觉得一点也不浪费」。1 月 12 日之后，16 张 ICU 隔离床位也很快住满了疑似病人。</p><p>1 月 11 日，中南医院感染科将一层楼改造完成的隔离病区也开始接收病人，后来又开放了三层，一共改建了四个隔离病区。1 月 14 日时感染科隔离病房在院人数增加到 32 人。</p><p>没有改建隔离病房的呼吸科有 16、17 两层楼，在早期缺乏核酸检测时，他们先把病人集中到通风条件较好的 17 层，程真顺和杨炯逐一把关，看片子筛查，把疑似病人转入隔离病房。杨炯透露，早期他们筛选出来的 40 个疑似病人，后来通过核酸检测都是阳性。</p><p>中南医院的防护物资储备也早早启动。分管设备的副院长、肝胆胰外科主任袁玉峰介绍，因为平时较少用到防护服，医院一年的总储备少于 1000 套。12 月 31 日他们在采购 SARS 试剂盒的同时，也开始跟供货商协调防护物资采购。1 月 2 日，6000 只 N95 医用防护口罩备货入库。医院启动战时总动员后，袁玉峰指令设备处开始大规模采购，到 1 月 9 日又入库了 6000 只 N95 口罩和 850 件医用防护服。</p><p>1 月 10 日左右，疫情在武汉一线医院已经不再是秘密，中南医院开始更大规模采购。1 月 13 日–15 日，中南医院又入库 18850 只 N95 口罩、8400 件防护服、4300 双靴套。袁玉峰仍然每天都要盯着设备处四处买物资。到 1 月 20 日的院党政联席会议上，袁玉峰汇报，已经储备了 46850 只 N95 口罩、12200 件防护服和 5800 双靴套。「我当时还觉得我买得挺多的，医院很多年都没有买这么多医用口罩、防护服。结果王院长说，『我叫你大量买，是以 10 万为单位，你连一个单位都没有买到。马上行动，快去尽可能多搞防护物资。』」袁玉峰说。</p><p>散会后，袁玉峰立即和生产厂家谈合同，把武汉厂家的仓库储存搬回医院仓库，又追加了大批订单，可惜很多在年后就断供了。此外，中南医院设备处应急库房里原来就有 4 台呼吸机、14 台监视仪、22 台注射泵和 2 台床边心电图机，在 1 月初开始的这波紧急采购中，他们又在院专家组的指导下，增加储备了 15 台呼吸机、26 台监护仪、20 台呼吸湿化治疗仪、3 台除颤仪、24 台注射泵、4 台床边心电图机、2 台移动 DR (数字化 X 射线摄影医疗诊断设备) 和 1 台可视喉镜。</p><p>「封城」前这些总金额达到 1500 万元的大采购，在「封城」早期起到了救命的作用，不仅避免了一线医护人员「裸奔」，也为救治新冠肺炎病人发挥了关键作用。</p><p>「打仗要有战略眼光，按照 SARS 级别防护，那就要按照 SARS 级别提前准备医用物资。我让医院采购上千万元防护物资，他们开始觉得我有点冒险，我觉得肯定要，事后证明还远远不够。」王行环说。</p><h2 id="大战前的再预警">大战前的再预警</h2><p>病人像滚雪球一样涌入中南医院的发热门诊和隔离病房。到 1 月 14 日，中南医院紧急开辟的急诊隔离病房、ICU 隔离病房、感染科隔离病房住满了高度疑似新冠肺炎患者。</p><p>夏剑作为中南医院发热门诊专家组成员，从 1 月初开始每天要往发热门诊跑十多趟，后来干脆坐在发热门诊后台审核病例，「发热门诊人挤人，每天要看 200 多人，我在后台看 CT 片子，大多呈现磨玻璃状、块状阴影，还有不规则状阴影，最危险的是大白肺，都不用做核酸检测，就知道是那个病。」</p><p>王行环私下和武汉其他医院交流，各家情况基本类似，肺部磨玻璃甚至大白肺的病人越来越多。1 月 10 日左右，武汉多家医院出现了医务人员感染，中南医院第一例医务人员感染是在 1 月 8 日——是一名放射科技师。</p><p>「病人家庭聚集性感染，医务人员感染，这些都是人传人的证据。」王行环 1 月 8 日到北京参加国家科学技术奖励大会，他牵头的「微创等离子前列腺手术体系的关键技术与临床应用」获得 2019 年度国家技术发明奖二等奖。1 月 10 日在人民大会堂领完奖后，他就急着往回赶。</p><p>经历过 SARS 的王行环，越来越频繁地翻 2003 年 SARS 大事记，「我越看越觉得，这次新冠病毒和 SARS 何其类似，我越来越焦虑，感觉要大祸临头了。」</p><p>在得知隔离病房里收治的疑似病例 1 月 13 日已经达到 55 人后，1 月 14 日，王行环联系了一位相熟的省领导，「我认真看过病人的 CT 片子，他们确实是新冠肺炎，而且这类病人越来越多，医院床位快住不下了。现在有关部门说这个病可防可控、未发现明确人传人证据，我认为这个判断肯定是错的，再不阻止，就要出大事了。」</p><p>放下电话，这位正在开省人大会议的领导立即赶到中南医院。王行环跟他详细分析了事态的严重性，并送给他一份 2003 年 SARS 大事记。「他说会回去向省委汇报，走的时候面色非常凝重。」</p><p>1 月 14 日下午，湖北省卫健委医政医管处一位官员带队来到中南医院，在隔离病房挨个查看疑似病人。「他穿着隔离服亲自数人头，怀疑我们报太多了。」赵剡对财新记者说，当天晚上，武汉市卫健委一位领导带着四名专家也来到中南医院，审查疑似病人的病历，「他们对着市卫健委白皮书里的入排标准逐一排查病历，首先是没有华南海鲜市场接触史的排除掉，然后细细审查其他项目，这条不符合，那条不符合，硬生生砍掉了一大半疑似病例」。</p><p>1 月 14 日，中南医院隔离病房在院疑似患者增加到 62 人。1 月 15 日，心急如焚的王行环再次给武汉市人大一位领导打电话，把跟省领导说的话又讲了一遍，并将 2003 年 SARS 大事记用微信转发过去，告诉对方这次跟 SARS 的严重性是一样的。这位市领导表示将会向市长、市委书记汇报。</p><p>第二天一早，武汉市卫健委负责人来到中南医院。王行环再次向他介绍了事态的严重性，并念了 2003 年 SARS 大事记里的一段：2003 年 4 月 3 日，时任卫生部长张文康在新闻发布会上称 SARS 可控；2003 年 4 月 20 日，中央免去北京市市长孟学农、卫生部长张文康职务。</p><p>杨炯记得，1 月 18 日过小年的时候，武昌区一位副区长到中南医院慰问专家，王行环很直接地问副区长：「SARS 又要来了，你们准备了多少口罩、多少病床？」</p><p>1 月 17 日是湖北省「两会」结束的日子，武汉市开始恢复新冠肺炎病例通报，武汉市卫健委从中南医院的隔离病房一次性转走 10 名有华南海鲜市场接触史的病人到金银潭医院，同时核酸检测权也从中国疾控中心下放到湖北省疾控中心。但由于每天检测量只有 200 多人份，湖北省和武汉市卫健委对各家医院的核酸检测名额进行了限制。「我们医院实事求是填报，在『封城』前武汉市确诊病例的 40% 是我们医院提供的。」赵剡告诉财新记者，「病毒不会以人的主观意志转移，我们能做的就是实事求是。」</p><p>1 月 8 日–17 日，国家卫健委派的第二批专家组在武汉医院考察，行程不包括中南医院。中南医院的医生们无法理解，为何国家卫健委专家组得出的结论依然是「未发现明确的人传人证据」。</p><p>「这些专家在武汉也去了不少医院，但没有来中南医院，如果他们来问我，我一定会告诉他们情况很严重，已经有医务人员院内感染了，他们如果私下问过其他医院，医生也一定会说的。」杨炯认为，这些国家专家组的专家都有精湛的诊断能力，如果去病房看看病人、查查病历，也都能分辨得出来。</p><p>1 月 18 日晚上，王行环听说国家卫健委派出第三批以钟南山院士、李兰娟院士为首的高级别专家组抵达了武汉。王行环和李兰娟院士熟识，他 1 月 19 日一大早就开车赶到李兰娟下榻的酒店陪李兰娟过早。</p><p>「一见到李兰娟院士，我就告诉她情况超出想象的严重，武汉的新冠肺炎病人远远超出通报的数量，可能 SARS 重来。正说着，钟南山院士也来餐厅吃早饭，我把大量新冠肺炎疑似病人积压和医务人员感染的情况又跟钟南山院士说了一遍。我还告诉他，根据我们巡诊了解的情况，武汉以外的湖北市县情况也很严重，但由于没有做核酸检测，没有上报一例。钟南山和李兰娟听了后都面色凝重。」他说。</p><p>和国家卫健委高级别专家组同期抵达武汉的，还有世界卫生组织的一个高级专家组。1 月 18 日，湖北省卫健委通知中南医院，世界卫生组织专家在武汉的考察行程包括中南医院。当时中南医院是武汉惟一建成规范的发热门诊和隔离病房的医院。中南医院如实向世卫专家组介绍了情况。</p><p>曾有一天夜里，有领导给王行环打来电话，王行环表示：「有人批评中南医院不讲政治，我认为讲政治就是要站在维护老百姓生命安全的国家利益大局上，站在党中央的政治高度。而如果站在局部利益上，才是不讲政治。」王行环回忆，对方没有反驳他，只是问了一句：「真的有这么严重吗？」王行环斩钉截铁地回答：「真的很严重。」</p><p>「真的有这么严重？」——王行环找了很多领导反映疫情，这是得到最多的一个回应。王行环觉得很悲哀，「领导要求专家讲政治，有些专家就把讲政治理解为把疫情往小了说，可防可控，不人传人，然后又是不排除有限人传人可能，结果领导也信了，反而怀疑我们一线医院反映的情况。」他认为，正是这种现象，导致决策轻视忽视，浪费了 1 月 20 日之前宝贵的半个月黄金防控期。</p><p>王行环告诉财新记者，他小时候家里穷，是从农村走出来的放牛娃，深感普通人生活之艰辛，考大学报医学志愿，决定悬壶济世为老百姓做实事。「如果我读了大学，走出农村了，反而不说实话，那我不是进步了，而是退步了，那还不如回家种田去。」</p><p>决意实话实说的王行环，1 月 19 日深夜召集医院领导班子，熬夜赶出一份新冠肺炎疫情防控建议书，1 月 20 日一大早标注「特急文件」送给省委有关领导。在这份特急件中，中南医院指出：「我们认为现阶段疫情没有得到有效控制，加之目前正值冬季，春节期间人员流动范围大，疫情具备快速蔓延条件，有失控的可能性。」</p><p>中南医院向省委提出六点建议：一、按照《国家突发公共卫生事件应急预案》特别重大 (I 级) 卫生事件处置办法，尽快动员进入 I 级防控状态；二、动员一切厂家加大对口罩、防护服的生产，可能即将面临物资紧缺、疯狂抢购等现象；三、成立防控工作领导小组，明确总指挥，做好长达五个月以上的持久战准备；四、采取与 SARS 后期相同级别的防控措施；五、简化筛查流程，对疑似病人尽快完成检测，对疑似病例与确诊病例都必须进行隔离治疗；六、防控可能出现持久战，保持医务人员战斗力成为当下关键，医疗机构因为顾虑被追究防控措施不完善的责任，存在对院内医务人员感染不报的情况，长此以往将形成医务人员战斗性减员和士气低下的氛围，对未来的疾病防控极为不利，应鼓励医疗机构如实上报医院人员感染情况。</p><p>对于持久战应该如何打，中南医院还建议了多项具体防控措施：通过官方媒体每日告知市民有效的防控措施与方法，告诫市民本次疫情的严重性；增加定点救治医院，采取集中诊治，同时马上启动快速建立类似北京 SARS 期间小汤山定点医院的独立简易隔离定点医院；全面放开检测单位，放宽检测范围，对所有发热人员进行新冠病毒核酸检测；加强诊疗方案与院感防控培训，提高医务人员对新冠肺炎的早期识别诊断治疗能力。</p><p>特急文件的末尾，王行环又附上了一份 2003 年 SARS 大事记，并标注：「具有惊人的相似性。」</p><p>1 月 19 日，钟南山、李兰娟等专家组成员赶回北京后，连夜见了国家卫健委主任马晓伟。李兰娟近期接受《中国卫生》杂志采访时透露：「到达武汉后，我与当地的医院院长和有关专家进行交流，了解到有较多的医务人员被感染，也到金银潭医院、武汉市疾控中心以及海鲜市场周边察看。我就意识到，这次新型冠状病毒已经存在人传人，人已经是传染源。」</p><p>1 月 20 日上午，钟南山和李兰娟列席了国务院常务会议，向李克强总理汇报了对武汉疫情的研判和如何防治等具体意见建议。会后，国务院作出决定，将新冠肺炎按照乙类传染病甲类管理。1 月 20 日下午，国务院和国家卫健委召开全国电视电话会，布置了全国联防联控的工作要求。1 月 20 日晚上，钟南山接受央视采访公布「肯定会人传人」，新华社发布习近平总书记对新冠肺炎疫情重要指示的新闻通稿，全国抗击新冠肺炎疫情战役正式打响。</p><h2 id="艰难的战略防御：决战七医院">艰难的战略防御：决战七医院</h2><p>1 月 20 日，世界卫生组织高级专家组来到中南医院，考察发热门诊、筛查、隔离、收治全流程。医生们向世卫组织专家介绍了发热门诊、隔离病房收治新冠肺炎病人的情况和医务人员感染情况。世卫组织专家充分肯定了中南医院的防控措施。</p><p>赵剡告诉财新记者，他们给世卫组织专家看的都是实情实景。据夏剑回忆，当时发热门诊的病人数已经达到一个高点，每天要看 400 人左右，尽管早有准备，但发热门诊已经是超负荷运作，医生护士疲惫不堪。「武汉各个区过来看病的都有，感觉发病的人数看不到尽头。」夏剑说。</p><p>王行环则透露了一个细节，「封城」前期，省里一位主要领导到中南医院视察，提到湖北省要向国家物资储备局打报告申请 3000 万个口罩，王行环立即就反驳，「3000 万个口罩够什么用，武汉市民 1000 万，一人派一个口罩，三天就用完了。」省领导当场僵住。</p><p>1 月 20 日，武汉成立新冠肺炎防控指挥部，召开会议部署全市防控工作。当天，汉口医院成为第三家收治新冠肺炎病人的定点医院，再加上原来的金银潭医院和武汉市肺科医院，合计提供 800 张床位，其他市属医疗机构也将腾出 1200 张床位。然而，这 2000 张床位很快就被如潮的病人淹没。1 月 21 日，武汉市卫健委又宣布整体征用汉口医院、红十字会医院、市第四医院西院、市第五医院、市第七医院、市第九医院、武昌医院等七家医院为发热患者定点诊疗医院，其门诊部全部作为发热门诊，集中接诊全市发热患者，并采取「7+7」模式，即由同济、协和、人民医院、中南医院等七家大型三甲综合性医院，与这七家市属二级医院结对子，腾出 3400 张床位。</p><p>根据「7+7」政策，中南医院负责托管七医院，副院长袁玉峰主动请缨，1 月 21 日就带队进驻七医院。</p><p>七医院是武昌区的一家二甲医院，平时门诊量每天不到 300 人，一栋老楼年久失修，一栋新楼四个病区有 180 张病床，再加上 ICU 的 10 张可用病床，一共 190 张床位。袁玉峰摸清情况后，考虑到七医院人员和技术力量不足，就跟七医院院长商量，决定由中南医院主导七医院的抗疫工作。</p><p>当天王行环院长也专门去了一趟七医院，开门见山地跟七医院严院长说：「中南医院接管七医院是来真的，你们要渡过难关，你就得辅佐袁玉峰。」七医院严院长也陈述了医院所面临的困难：「我们医院人手太少，也没有防护物资。」王行环拍板：「政府物资到来之前，由中南医院全部提供。」</p><p>根据武汉市新冠肺炎防控指挥部要求，七家区级定点医院 1 月 23 日早晨开诊。1 月 22 日一大早，七医院贴出普通门诊停诊通知，袁玉峰带着人开始改造七医院发热门诊和隔离病房，按照「三区两通道」建设，隔断发热门诊。他还叫来几位副院长和科室主任帮忙，帮助成立医疗救治组、院感防控组、物资供应组、数据信息组等七个工作组。赵剡看到七医院的电脑系统老旧，就从中南医院拉来一批电脑，临时改进了七医院的医院管理系统，甚至部分输液架也是从中南医院紧急运过来的。</p><p>到了 1 月 22 日傍晚，病人在新闻中看到七医院改为定点医院的消息——当时整个武昌区只有两家定点医院，纷纷涌来排队。袁玉峰还在发热门诊指挥装修，就有病人进来拉着他的衣袖问什么时候开诊，当时袁玉峰并没有穿防护服。</p><p>尽管宣布第二天一早 8 点正式开诊，在门外排队的病人越来越多，到晚上 9 点，等待的人群已经有上百人。那天天气很寒冷，下着小雨，袁玉峰看到发热病人哆哆嗦嗦站在寒风中，心情十分焦急，抓住装修负责人要求一个小时后必须腾出几间诊室和隔离病区。晚上 10 点，七医院发热门诊的两个诊室开门接诊；11 点半，隔离病区一病区开始接收病人，成为武汉市首家正式开诊的「7+7」模式发热患者定点医院。从 1 月 22 日晚上 10 点到第二天早上 8 点，七医院一共接诊了 113 名病人，收治入院 24 人。</p><p>1 月 23 日一早，更多病人涌来。「等着看病的队伍在门诊前的空地上折了几个弯，一直延伸到院前的马路上。」袁玉峰看到很多老人在雨中互相搀扶着排队，心酸得不行，他抄起手机给武昌区区长余松和副区长向悦打电话，要求政府在医院楼外搭建一个露天遮雨棚，为看病的人遮挡一下风雨。「尽管当时已近年关，遮雨棚采购和安装都很难，但他们没含糊就带人过来了，一晚上就把棚子搭起来了。」</p><p>1 月 23 日，七医院发热门诊接诊量达到 1311 人，1 月 24 日 1366 人……上千人的单日门诊量持续了整整十天，是原来七医院日门诊量的四五倍。</p><p>医生护士不够，袁玉峰安排七医院所有医护人员全员紧急培训上岗，从中南医院调来了 160 多名医务人员，又紧急联系武汉市疫情防控指挥部，协调省内外医疗队资源支援。1 月 25 日，中国人民解放军中部战区总医院 22 人组成的医疗队进驻七医院；第二天凌晨，河北医疗队 150 人抵达。</p><p>病床不够，袁玉峰边收治、边改建，二、三、四隔离病区相继于开诊第二天和第三天开放。190 张床的隔离病房很快住满，袁玉峰和中南医院副院长李志强教授又指挥工程队将年久失修的七医院旧楼重新改造……还是有越来越多的病人没办法收治住院，每天都接到很多求助的电话，袁玉峰说那时候他感觉自己是一个没有用的人。「以前做外科医生，觉得自己手中一把手术刀很牛，但在那个时候没床位收病人，医生和病人都很绝望。」</p><p>让人头疼的还有防护物资。袁玉峰刚到七医院时，医院库存的 N95 口罩仅 900 个，防护服 1000 套，而发热门诊、留观室和隔离病房高峰时期每天要消耗 600 个–800 个口罩和防护服，七医院的库存仅够用一天。从「封城」到 2 月 1 日，是防护物资最紧缺的时候，政府的物资供应常常无法到位，七医院绝大多数的防护用品是从中南医院的仓库里拉来的。袁玉峰管着中南医院和七医院两家医院的物资仓库，「我每天睁眼第一件事情就是去仓库，清点口罩有多少、防护服有多少。一开始是每天清点一次，最紧缺的时候是半天清点一次。」袁玉峰说，自己在这次抗疫期间学会了精打细算，为了用好物资，他让医务处和护理部每天分病区计算病人量、护士和医生倒班次数，还有保洁和保安人员数量，以此核定每天每个病区消耗，精确到个位数，各病区按数配发。</p><p>即使如此精打细算，前期中南医院储备的数万个口罩和防护服还是很快见底，袁玉峰请求自己在上海、深圳等地的同学帮忙买口罩，但是当地实行医疗物资限购，运不出来。最惨的 1 月 27 日，七医院的库存只够支撑一天。</p><p>48 岁的袁玉峰身材魁梧，他说自己是个内心强大的人，前几年父亲生病，他亲自给父亲主刀做手术，心里都很平静。但在七医院救援期间，他几近崩溃。病人拥堵发热门诊，绝望地祈求住院；医护人员防护物资不够，24 小时疲惫地接诊……他看着无助的病人难受，又担心医护人员感染，「当时心里真没底，不知道能不能过这个关」。</p><p><img src="leishenshan-hospital.webp" alt="截至 3 月 28 日，雷神山医院在院病人不到 200 人，还有 1800 多名医护人员继续「留守」岗位。"></p><p>幸运的是，武汉大学校友会给了中南医院强大的支持，使得中南医院和七医院防护物资没有断供。只要一有从海外买来的口罩、防护服，校友会负责人就会打电话让袁玉峰去取，有一次袁玉峰让人开着公交车去领物资，塞了满满一公交车。袁玉峰还安排设备处组成物资搜寻组，每天听到哪里有社会捐赠物资的消息就赶紧去领，有时候只是一箱口罩、几十套防护面罩，领物资的人也很开心。</p><p>据王行环透露，有一次，社会爱心人士定向捐赠给中南医院一批防护物资，中途被武汉市红十字会接收，红会称防护物资弄丢了，中南医院报警都没找回来。于是中南医院负责物资捐赠的工作人员带着 20 个医务人员到机场，直接从红会仓库里「抢」回了防护物资。「红会丢了我们的东西，丢的是我们的命。」王行环说。</p><p>2 月 2 日是七医院的转折点：政府供应跟上来了。袁玉峰松了一口气。「如果没有我们前期储备的防护物资，没有校友的捐赠，七医院根本支撑不下来。」他回忆，也是在 2 月 2 日，首例治愈患者从七医院出院，忙乱的日子在 2 月 2 日前后开始缓解。「基层动起来了，按照分级诊疗，病人由社区、街道送到医院来看病，病人不再跨区跑，传染源控制住了，才感到疫情有希望控制住了。」</p><p>2 月 18 日，七医院首次达到出入院平衡，实现了从「人等床」向「床等人」的重大转变。与其他「7+7」模式医院不同，中南医院托管七医院，一直坚持到 3 月 14 日七医院送走最后一批新冠肺炎病人。从 1 月 22 日晚开诊至 3 月 14 日，七医院累计接诊发热患者 17613 人，收治住院患者 656 人，其中危重症患者占到四成。</p><p>「接手了就是我们自己的事，动真格地做。」袁玉峰说。</p><h2 id="战略相持：接管方舱医院">战略相持：接管方舱医院</h2><p>在赵剡眼里，新冠病毒虽然是个新病毒，但对应的方法并不比 SARS 更难。「控制传染源，切断传染途径，保护易感人群，这些是我们应对 SARS 总结的经验。」</p><p>赵剡把武汉抗疫分为两个阶段，以 1 月 20 日发布习近平总书记重要指示、全国抗击新冠肺炎疫情战役正式打响为分水岭，「在习总书记讲话之前，我们一线医生是绝望的，病人像滚雪球一样越来越多，我们预感这个事情要死很多人，我们拼命救人，但不阻断传染源，我今天治好 100 个人，明天涌来更多病人，很绝望。」</p><p>赵剡说，「习总书记讲话后，政府重视了，我就知道这个问题有解决的希望了。虽然『封城』前期，尤其是接管七医院的前十天，过得非常艰苦，但我们充满了斗志，只要问题暴露出来、重视了，再大的问题，大家齐心协力，没有搞不定的事情。」</p><p>出身「黄埔将军县」的王行环，则把武汉抗疫按照毛泽东的《论持久战》中对战争周期的阐述，划分为四个阶段：战略准备期、战略防御期、战略相持期和战略反攻期。他必须像一个不动如山、侵掠似火的将军，带领中南医院 3000 多名员工，在这个没有硝烟却处处暗箭的战场上活着走下去。他们很早判断出了敌情，并尽己所能做好物资和动员准备，也反复向有关方面示警，但无法阻挡历史的车轮在无数个偶然中必然地碾来；他们日常床位量不过 3000 张左右，与近万名员工的大医院相比体量仅是中等，但在武汉抗疫战中承担了最大救治量的任务，不仅将本院变成了整座城市最大的传染病医院，还以一己之力同时承担着四家医院的运行，最多时提供了 5400 张床位收治新冠肺炎病人。</p><p>「新冠病毒对人类的破坏力比战争还大，我们只能拼出一条血路来。」王行环说，其他人还在争辩新冠肺炎究竟是大号流感还是小号 SARS 时，他们从一开始就把这次疫情当成大号 SARS 看待。「大家还是把它往小了看，它的流行性不如流感，致死率不如 SARS，但为什么不去想它的致死率 10 倍于流感、传染率百倍于 SARS？更重要的是，它有可能不是季节性的，我们是按照五个月半年的持久战去做思想准备的」。</p><p>正因为有这样的心理准备，在抗疫之初，与武汉市整体应对的添油战术不同，中南医院采取的是「车轮战」，将全院各科的医务人员轮流派上一线，各部门都有了应对新冠肺炎疫情的经验，很快就训练出一批精兵强将，在各个分战场迎战新冠病毒。「上级一有任务，我们的『人马』拉出来立即能组成一支训练有素的部队。」王行环说。</p><p>在经历十天无比吃力的防御战之后，2 月 2 日中午，武汉市新冠肺炎防控指挥部发布第十号通告，对新冠肺炎确诊、疑似、发热及密切接触者「四类人员」进行集中收治和隔离，确诊的新冠肺炎患者集中到医院收治，疑似病人集中到酒店宾馆隔离，武汉终于走上了「分类隔离，分级筛查」「应收尽收」的正轨。</p><p>根据十号通告规定，确诊重症新冠肺炎患者须送定点医院入院治疗，轻症患者无法全部进入定点医院治疗的，须征用其他医院或酒店作为临时治疗区集中收治。然而，这些临时治疗区究竟是哪些，人们并不知晓。更重要的是，医院床位本就无比紧缺，收治重症病人都捉襟见肘，酒店隔离点则不具备治疗条件，如何安置数量更为庞大的确诊轻症患者，成为当务之急。</p><p>尽管武汉市不断征用定点医院，床位不足仍是硬约束。1 月 30 日，武汉市卫健委披露，武汉市第一批征用的七家定点医院 2462 张床位已满；第二批三家定点医院约 1380 张床位开始收治病人，已接近饱和；第三批征用的 14 家医院改建完成后可提供近 5000 张床位，部分医院已提供 635 张床位。</p><p>这 4000 多张床位仍远不能满足病人的增加，真正让已经超载运行的医院缓一口气的，是 2 月 3 日开始兴建的方舱医院。</p><p>方舱医院是一种以医疗方舱为载体、医疗与医技保障功能综合集成的可快速部署的成套野外移动医疗平台，一般由医疗功能单元、病房单元、后勤保障单元等模块构成，其中医疗功能模块又包括紧急救治、临床检验等设施功能。由于它机动性好、展开部署快速、环境适应性强等诸多优点，从战争急救到突发灾害、应急救援，获得了越来越广泛的应用。</p><p>一位武汉市政府官员向财新记者透露，兴建专门收治新冠肺炎轻症患者的方舱医院，是 2 月 3 日上午在武汉的一次会议上，由中国工程院副院长、中国医学科学院院长王辰院士提出的。王辰表示，方舱医院是解决收治主要矛盾的现实之策，大容量的方舱医院既可以让病人得到系统的医学管理，让大量轻症患者通过必要的救治获得康复，又能起到批量病患集中隔离作用，防止疫情进一步扩散，而且相比其他医院，方舱医院不需要占用过多医护人员，也不需要太多高端抢救设备，能够迅速建成投入运行。</p><p>整个会议为之暂停。当天下午，武汉市政府官员陪同王辰考察选址，最终紧急征用了洪山体育馆、武汉客厅和武汉国际会展中心三座面积较大、空间开阔的公共场馆，建设总计可容纳 3800 张床位的方舱医院。</p><p>潘振宇告诉财新记者，2 月 3 日下午武汉市疫情防控指挥部一位领导通知中南医院接手洪山体育馆方舱医院，当天晚上，中南医院派出人员和施工单位一起改建洪山体育馆，「我在现场协助洪山体育馆方舱医院建设，一直熬到凌晨 3 点多才回家休息」。2 月 4 日早上 9 点多，改建主体工程基本完工。</p><p>然而，2 月 4 日上午 10 点，潘振宇接到消息，中南医院接手的改为第一批中最大的武汉客厅方舱医院。潘振宇很无奈，他们把快要改建完成的洪山体育馆方舱交给别的医院，马上又赶到武汉客厅。</p><p>中南医院党委宣传部部长高翔对财新记者介绍，武汉客厅方舱医院 2 月 6 日紧急改造完毕，又花了一天安装设备，即交付中南医院管理团队，中南医院副院长、神经内科首席专家章军建教授带领医院 100 多名医务人员接管。此后还有来自广东、宁夏、新疆生产建设兵团的三支国家紧急医学救援队，和从福建、甘肃、安徽等省份驰援的十多支医疗护理队共 1100 余名医护人员，由中南医院统一协调管理武汉客厅方舱医院医疗救治工作。</p><p>陈小艳是中南医院外科的总护士长，此次担任武汉客厅方舱医院 A 区护理总负责人。她向财新记者介绍，武汉客厅方舱医院分为 ABC 三个舱，A 舱 614 张床位，B 舱、C 舱各 400 多张床位，一共有 1461 张床位。舱内每 12 个床位隔开成一个小舱，除了床位，还有治疗室、采样室、抢救室等医疗功能模块，还设置了图书角和公共活动区域。</p><p>将近 1500 张床位的医院，一天选址设计，一天改造，一天调试，2 月 7 日接收病人。如此庞大而紧迫的工程，前期难免简陋。陈小艳告诉财新记者，她从中南医院病区刚换到方舱医院时，几百张床位铺天盖地进入眼帘，她的头有点晕，心里「咯噔」一声，「这么多张床位，如何管理，我心中并没有底」。</p><p>刚住进来的病人心里更没底，几乎每个人都会拉着医护人员问个不停：要在方舱医院住多久，舱里医疗条件如何，有没有足够的医生，有没有氧气瓶、呼吸机，都发什么药，病重了能不能顺利转院，什么时候能出院……还有病人心情不好，抱怨伙食差，抱怨没有热水，抱怨厕所脏。陈小艳带着护士们尽量帮助病人改善居住条件，给怕冷的添棉絮、加电热毯，不想吃饭的，医护人员掏钱从舱外带东西给病人吃，安抚病人情绪。「硬件条件差，我们就用服务来改善。」陈小艳说。</p><p>陈小艳察觉到，武汉客厅方舱医院刚运行的几天，天气阴冷，病人们普遍情绪低落，大多躺在床上不动。为了活跃气氛，护士们动员病人下床走动，由护士们领着做呼吸操，新疆来的女护士们还跳了新疆舞，引来很多病人围观。医护人员和病人以及病人之间的互动逐渐多起来，方舱医院的氛围日渐活跃。病人组建志愿者服务队帮助医护人员分发饭菜、抬水、清扫厕所，方舱医院慢慢变成一个医护人员和病人共同管理的社区。在很多方舱医院里的病人看来，住院的日子固然难熬，但相比 1 月底、2 月初那十几天在医院和家之间无望奔波的经历，方舱医院像一处平静的避风港。这里所有的病人都是同一种疾病，住着一样的床位，吃着一样的饭菜，医疗服务平等对待——即使有区别也是根据病情轻重，身份、财富、阶层，在这里都暂时不存在了。</p><p>2 月 23 日，武汉客厅方舱医院组织医护人员和病人举办「同舟共济，大爱永存」歌唱比赛。中南医院、广东和新疆生产建设兵团的国家紧急医学救援队及甘肃、福建和安徽的医疗队一起合唱《让世界充满爱》，病人也列队合唱《歌唱祖国》，然后大家一起高喊「武汉加油」。国家紧急医学救援队 (新疆生产建设兵团) 医疗总负责人、石河子大学附属第一医院重症医学科医生程青虹告诉财新记者，病人准备得很认真，精神饱满列队表演，看得他一度热泪盈眶，让他坚信一定能够打败疫情。</p><p>3 月 7 日，人来人往的武汉客厅方舱医院安静了，当日患者清零。据统计，武汉客厅方舱医院共收治患者 1760 名，高峰时期在舱患者 1434 人，实现了患者零死亡、医护人员零感染、安全生产零事故、治愈人员零复发。</p><p>3 月 10 日，武汉最后一座方舱医院休舱。在抗疫期间，武汉共建成 16 家方舱医院，实际投入使用 15 家，总床位超过 1.34 万张，累计收治新冠肺炎轻症患者 1.2 万多人，成为名副其实的「生命之舱」。王行环认为，方舱医院对抗疫战局攻守易势、掌握控制传染源和阻断传播途径的主动权发挥了关键作用，「惟一遗憾的是我们建晚了，如果在『封城』之际就启动方舱医院，抗疫形势会对我们有利得多。」</p><h2 id="战略反攻：临危受命雷神山医院">战略反攻：临危受命雷神山医院</h2><p>2 月 8 日，中央政法委秘书长陈一新出任中央指导组副组长。他曾担任武汉市委书记，对武汉有很深的了解。两年后临危受命再返武汉，陈一新立即开展调研，考虑到病情紧急，他在微信群与各区负责人见面，吹响武汉「应收尽收」清零攻坚战的冲锋号。</p><p>为了确保所有确诊患者和疑似患者都得到集中收治，武汉各家医院不断扩大床位，武汉版「小汤山医院」火神山医院、雷神山医院发挥了「压舱石」作用。火神山医院自 1 月 24 日开始施工，2 月 2 日上午举行军地交接仪式，军队抽组 1400 名医护人员承担火神山医院医疗救治任务，编设床位 1000 张，2 月 4 日上午收治首批患者。雷神山医院则是自 1 月 25 日决定建立，编设床位 1600 张，2 月 8 日完成施工建设。雷神山医院原计划由武汉市属医院管理，但 2 月 8 日早上，武汉市领导通知王行环，由中南医院接管雷神山医院，王行环出任雷神山医院院长。</p><p>王行环告诉财新记者，2 月 8 日一早他接到组织任命时还颇感意外。「雷神山医院备受关注，2 月 7 日已经宣布了院长，武汉市属多家医院已经抽调骨干力量过去，而且即使市属医院人力不足要换大医院接手，中南医院也并不是武汉实力最强的医院。领导告诉我，是中央指导组点名要我担任雷神山医院院长，啃下这块硬骨头。」</p><p>王行环没有推托，上午 10 点多，他带领医院骨干人员赶到这座「工地上的医院」。当时雷神山主体建筑刚完成，王行环和武汉市政府领导在施工现场开办公会，1.3 万名建筑工人还在工地上加班加点。「我在工地现场规划办公区域，工人们一边不停催我让一让。」王行环对当天的紧张气氛还记忆犹新。</p><p>彼时收治的压力依然很大，大量病人等待入院。武汉市疫情防控指挥部要求，雷神山医院 2 月 8 日晚上就要接收首批新冠肺炎病患。作为医疗总指挥的王行环和一位负责雷神山医院建设的总协调人站在路边抽了一根烟，他问对方「你怎么看」，对方说：「这是一辈子都遇不上的大事，豁出去了。」</p><p>两人没有二话，采用边建设边滚动式开病区，修好一个病区，验收完就立即接收病人。当晚 A16 区接收了 29 个病人，2 月 9 日 A15 区接收了 40 多个病人。「最多的时候一天要开七八个病区。修好一个病区，立即用隔离挡板挡住，挡板这边在收病人，另一边在赶施工进度。」王行环记得，有一次半夜，刚赶完进度建好一个病区，就有病人转运来了，「我们在里面验收，病人在外面等，验收完病人就住进来，一刻也没耽误，就这样持续了十多天。」</p><p>2 月 14 日晚，武汉风雨大作，雷神山医院尚未交付的病区屋顶被大风损坏，多处漏水。王行环连夜和施工单位商量修改设计方案，加盖了防雨屋顶。「现学现用，我都成半个建筑专家了。」王行环说，此后地漏堵塞、负压病房密封不稳定、空调漏水等问题，都在建设进行中不断改进。</p><p>袁玉峰 2 月 8 日也交接完七医院的工作，赶到雷神山协助王行环。边施工边接收病人是一项很有挑战性的工作，需要保证医务人员、病人和施工人员的安全。有施工队跟袁玉峰诉苦，问他能否停止白天转运病人，夜晚再转运。「他跟我说，白天转运病人，工人看到病人会吓跑的。可是晚上转运病人，会把医务人员和病人置于危险中。」后来双方共同商定，用挡板隔开尚未修建好的部分，边建设边收治病人。到 2 月 20 日，雷神山医院建成 32 个病区 1402 张床位，其中 30 个是普通病区，2 个重症监护病区。</p><p>彭志勇也被调到雷神山负责 ICU 病房。他告诉财新记者，雷神山医院第一个 ICU 病区的组建用了 3 天时间，第二个 ICU 病区只用了 36 个小时。「三天时间就在空白的基础上建好一个 ICU 病区，我是比较满意的。王院长又跟我说，压缩时间一天再建一个，我觉得有点不可思议，最后还是完成了。早开一个病床，就能多救一条命。」</p><p>在中南医院和雷神山医院，彭志勇负责的 ICU 病房新冠肺炎病人死亡率在 20% 左右，低于 ICU 平均的 30%–40% 死亡率。彭志勇告诉财新记者，由于前期耽误了救治时间，进入 ICU 的新冠肺炎病人大多错过了早期治疗，呼吸衰竭问题很严重，救治的关键点在于对每位危重症患者进行精细化管理，什么时候插管、什么时候上 ECMO，都需要精细评估，错过时机就很难挽救。他的团队会以小时计算，精确掌握每位重症患者的状况，随时跟进抢救措施。王行环透露，包括彭志勇的 ICU 和夏剑的急诊 ICU，中南医院使用 ECMO 的救治成功率维持在 50%–60%，远高于 20%–40% 的国际水准。</p><p>包括中南医院的 466 名医护人员，陆续进驻雷神山医院支援的共有来自全国 9 省市、16 支医疗队、286 家医院的 3202 名医护人员，以及 660 名后勤人员，总计 3862 人。如何协调管理多样化的医疗人员，成为雷神山医院的一项重要工作。</p><p>王行环提出雷神山医务人员零感染目标，院感防控是重中之重。雷神山医院院感工作小组负责人、中南医院质量与安全管理办公室主任朱小平主任护师告诉财新记者，在医院边建设边收治病人时期，医院质管院感组就按照「洁污分流、医患分流、人物分流」原则，迅速绘制了医院院感通道一览图和病房单元各类人员动线图，严格按照「三区两通道」区别清洁区、潜在污染区及污染区，科学规划医院布局，严密保护工作人员安全。与此同时，迅速搭建医院感染控制管理架构，成立雷神山医院感染管理委员会和感染防控工作组，制定院感管理指标体系、感控制度、工作流程、落实责任清单以及 55 项指标的《病区院感质量巡查工作标准》，对医护工作大道、休息室、物资通道、病区清洁区、治疗室、缓冲区及病区 7 个区域，从当日的防护用品配备、消毒隔离情况、医疗废物处置、保洁清洁消毒等 33 个内容进行督导检查，做到统一调度、同质化管理，保证院感控制管理各部门、各病区、各环节的协调联动，保障各区域同推进、同覆盖。</p><p>医疗队伍进驻，首先就是做院感培训。朱小平不是感控出身，她之前担任中南医院护理部主任，从事临床护理、护理管理和护理教学工作近 40 年，是湖北省护理学会副理事长和武汉大学护理专业的硕士生导师。为做好院区全流程、全范围人群的感染防控工作，她邀请国家卫健委派驻医院的北京大学第一医院感染管理科主任李六亿、徐州医科大学附属医院院感科主任茅一萍、四川大学华西医院院感部主管技师乔甫等院感防控专家，对 32 个隔离病区、2 个 ICU、手术室、检验科、影像科、药剂科的临床医护技人员以及保洁、维修、安保等后勤保障及行政管理人员进行感控知识轮训。</p><p>「李六亿教授他们拿着大喇叭，选一块空旷的室外空地，给所有这 3800 多职工做培训，一个内容反复讲，全院前后做了 300 多场院感培训。」朱小平说，「在雷神山我们的目标是『打胜仗、零感染』，我们对医务人员和维修工人一视同仁，一个都不能感染。」</p><p>好在此时防护物资的产能已跟上，袁玉峰不再需要像在七医院那样，为每一个口罩和防护服紧巴巴做算术，但要操心的事情还是很多。如何建立规范化的治疗方案，把 16 支医疗队的医疗质量同质化，是工作的重点。「这是一个战时医院，管理既不能太复杂，但也不能太粗糙，医疗质量要保证。」袁玉峰透露，截至 3 月 24 日，雷神山医院共收治 1961 名病人，60 岁以上的病人占 60%，重症病人和危重症病人占 30%–40%。</p><p>3 月 25 日，雷神山医院首个病区清零；3 月 28 日、29 日，C7、C5 病区陆续关闭。1090 名援鄂医护人员完成救治任务。3 月 29 日，雷神山医院举行首批援鄂医疗队集中撤离仪式。王行环院长为撤离的医护人员颁发《抗疫工作证明》和雷神山医院纪念章，多名医护人员在现场洒泪。「我们与武汉人民一起并肩作战过，这是我一生中最自豪的事。」一名来自吉林的医疗队员告诉财新记者。</p><p>王行环告诉财新记者，截至 3 月 28 日，雷神山医院在院病人不到 200 人，还有 1800 多名医护人员继续「留守」岗位。「我们将奋斗到把最后一名病人送走。」王行环估计，4 月底雷神山医院将完成救治任务，胜利在望。</p><h2 id="「这场战争，我们没有丢下一个战友」">「这场战争，我们没有丢下一个战友」</h2><p>3 月 27 日下午，湖北省卫健委副主任柳东如在新闻发布会上表示：「武汉主战场疫情传播基本阻断。武汉市整体由高风险区降为中风险区。」</p><p>同一天，中南医院本院在经过为期两周的深层清洁消毒后，恢复普通门诊，为武汉抗疫提供最多传染病床的中南医院逐渐恢复正轨。这家原本只有 3000 多张病床的综合性医院，在疫情最严重的时候成为收治新冠肺炎病患的传染病医院，开放了本院 1 号楼、2 号楼、3 号楼、4 号楼、7 号楼的 2000 多张床位，托管定点医院七医院，提供了超过 200 张床位，接管武汉客厅方舱医院提供 1400 多张床位，托管雷神山医院 1600 张床位，总计为新冠肺炎病人提供了 5400 张床位。</p><p>王行环依然坚守在雷神山医院，等着把最后一批新冠肺炎患者送出医院。在临时搭建的板房办公室里，有一张简易的行军床。自 1 月 3 日中南医院提前启动「战时状态」，他每天都绷得很紧，大多数时候睡在办公室里。</p><p>即使武汉抗疫胜利在望，他依然少有笑容。「事情何以至此？如果再来一次，我们能否防得住？」王行环向记者提出两个疑问，「我所说的不针对任何特定人，处理个别的特定人并不会对事情有本质改善。悲剧发生了，死了那么多人，那么多医护人员被感染了，希望若再有下一次病毒侵袭，我们能防得住，别让悲剧一而再、再而三发生。」</p><p>王行环指出，新冠病毒是最容易被忽视的病毒，在中国早期如此，后来在欧美发达国家亦如是，种种教训一个不少重复了一遍又一遍。「新冠肺炎已经演变成自 1918 年西班牙大流感后人类历史上百年未遇的大流行病，破坏力和影响力比战争更大。」他总结道，「和平太久了，防控流行传染病体系缺少检验，政治家、专业人士和民众都放松了警惕。」</p><p>王行环说，预防传染病是个专业的领域，事关重大，应该避免外行指导内行。湖北省统计局副局长叶青在接受财新记者采访时曾建议，在省市级要专门安排一个副省长或副市长管卫生健康，这个健康副省 (市) 长应当第一学历是正规医学院本科毕业，有在医疗机构工作过的经历，各级卫健委主任也必须由专业人士担任，让懂卫生健康的人管卫生健康。王行环对此完全赞同：「这次中央指导组的领导多次跟我说，湖北省市懂卫生的政府官员太少了。」</p><p>真正的麻烦在于，类似的问题恐怕不独在湖北和武汉。武汉的疫情发生后，很多数学模型预计重庆、湖南、河南也将疫情大暴发，但这些地方都成功遏制住了新冠肺炎的蔓延势头，以强有力的筛查甄别、患者隔离、社区封闭和公共区域管控等群防群控措施，将控制传染源、切断传播途径和保护易感人群这三大环节完成得几乎滴水不漏。但王行环认为，疫情出现在武汉应属偶然，如果不在武汉，那么绝大部分地方前期不一定会做得更好；同样，如果武汉也只是输入地，那么它也不会比重庆、长沙、上海等城市做得差。</p><p>「传染病预防控制体系和公共卫生应急管理体系的不完善，在这次疫情中是深刻的教训，前期的轻视把小事放任成了大事，后期集中力量把大事给解决了，这样的惯性不打破，即使胜利也是一场惨胜。」他说。</p><p>回顾整场战争，王行环认为，前两个阶段 (战略准备期和战略防御期) 不及格，后两个阶段 (战略相持期和战略反攻期) 可称优秀，而战略防御期间的诸多被动与混乱，也是因为战略准备期对敌情侦察不明、重视不够导致物资准备和组织动员严重不足。</p><p>他很痛心，中国在 2003 年 SARS 期间已经吃过大亏，SARS 过后花很大力气建立了传染病疫情和突发公共卫生事件监测体系，但经过这次新冠病毒检验，实战能力不行。「网络直报干扰因素很多，敌情通报被耽误了。」王行环认为，这个连敌情都听不到的系统，经过实战检验失败了，必须重建，「要尊重一线医生的预警，只要医生填进去，区、市、省、国家每一级都不能截留，不能受到行政干扰，要让一线医生有预警的权利。」</p><p>他进一步指出，「识别这个传染病并不困难，医院系统能识别，疾控系统能识别，国家专家组也能识别，为何这么多股力量汇聚在一起就识别不了了？因为没有人需要为此负责，或者说大家都要负责，到最后就变成大家都不负责。应该用法律的形式确定各自责任的界限。出了事，按照法定职责处置。」在早期，中南医院因为预警多次被批评「政治站位不够」，王行环认为，真正的讲政治应当是利国利民，「我觉得不利国不利民才是不讲政治」。</p><p>此次令王行环颇感遗憾的是，虽然中南医院很早就在急诊、ICU、感染科建立隔离病房，但对普通科室的防控仍存在疏忽。1 月中旬，肝胆外科收了一位胆囊炎病人，该病人入院时不发烧、不咳嗽，没有华南海鲜市场接触史，因此没有给他做不明原因肺炎的筛查，但三天后那位病人出现发热，感染了肝胆外科的 12 名医护人员，其他科室的 4 名医护人员因到肝胆外科会诊和参加多学科疾病讨论也先后感染了。一位早期无症状的肝胆外科病人一圈下来感染 16 名医护人员，泌尿外科、神经内科、妇产科、骨科等科室的医护人员，也有被早期无症状病人感染的情况发生。</p><p>王行环透露，中南医院全院 3900 名员工，有 100 人左右感染，其中包括本院的保安、保洁等。「只要为医院做出贡献的人，医院都给予同样的照顾。医院对感染的职工开辟了专门的病区，精心照顾。」</p><p>他说：「我很庆幸，这场战争我们没有丢下一个战友。」</p>]]>
    </content>
    <id>https://editst.com/2020/they-played-full-court/</id>
    <link href="https://editst.com/2020/they-played-full-court/"/>
    <published>2020-04-12T14:27:24.000Z</published>
    <summary>
      <![CDATA[<p>在一群精英医生带领下，武大中南医院于遭遇战及早预警，于相持战接管定点医院和最大方舱，于决战主持雷神山医院，以专业精神从头打到尾，并为避免下次公共卫生危机提供启示</p>]]>
    </summary>
    <title>武汉疫情中的中南医院：他们打满全场</title>
    <updated>2020-04-29T20:40:13.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="技术" scheme="https://editst.com/categories/%E6%8A%80%E6%9C%AF/"/>
    <category term="Pixel" scheme="https://editst.com/tags/Pixel/"/>
    <category term="Android" scheme="https://editst.com/tags/Android/"/>
    <content>
      <![CDATA[<p>最近在闲鱼买了一部 Pixel XL，主要是看中了它支持永久的不限容量原始画质 Google Photos 备份，而且 4+128 的配置放在现在也不算过时，可以当一部不错的备用机。由于美版机器原生系统只支持联通全网通，然而硬件上应该是支持电信和移动网络的，因此搜索到可以通过更改基带来支持电信全网通。</p><p>更改基带文件的总体思路是提取相同型号处理器的基带文件（这里使用的是 Oneplus 3T)加入到原生系统的基带中。由于这个手机发布时间比较长了，网上的教程历史比较悠久，大多是基于 Android 7/8 版本，而 Google 官方已经更新到了 Android 10，因此我参考<a href="http://bbs.gfan.com/android-9571646-1-1.html">这个教程</a>，基于最新的 Pixel 系统镜像 <code>9.0.0 (PQ3A.190801.002, Aug 2019)</code> 和 Oneplus 3T 系统镜像 <code>OnePlus3THydrogen_28_OTA_083_all</code> 制作了基带文件，总结如下。</p><p><strong>由于 Android 10 镜像内无法直接找到基带文件，且据信相较于 Android 9 基带并无更新，因此这里使用了最新的 Android 9 镜像</strong></p><h2 id="TL-DR">TL; DR</h2><p>下载我<a href="https://raw.githubusercontent.com/Editst/pixel/master/modem_patch.img">上传到 GitHub 的文件</a>，把手机连接到电脑，重启到 fastboot，使用以下命令刷入并重启即可</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">fastboot flash modem modem_patch.img --slot all</span><br><span class="line">fastboot reboot</span><br></pre></td></tr></table></figure><p>此后如果需要使用联通卡，需要新建接入点名称（APN）配置，APN 配置为 <code>3gnet</code>，其余不用修改，保存即可使用。</p><span id="more"></span><h2 id="修改步骤">修改步骤</h2><h3 id="提取基带文件">提取基带文件</h3><ol><li><p>下载 Pixel 的<a href="https://dl.google.com/dl/android/aosp/marlin-pq3a.190801.002-factory-13dbb265.zip">原厂镜像</a>，解压后再将得到的 <code>image-marlin-qp1a.191005.007.a3.zip</code> 文件解压，取出 <code>modem.img</code>。</p></li><li><p>下载 Oneplus 3T 的<a href="http://download.h2os.com/OnePlus%203T/MP/OnePlus3THydrogen_28_OTA_083_all_2002201900_bf0fc8385b5547c0.zip">线刷包</a>，解压后在 <code>firmware-update</code> 目录下取出 <code>NON-HLOS.bin</code>。</p></li></ol><p>这两个文件我也<a href="https://github.com/Editst/pixel">上传到了 GitHub</a>，可以直接下载。</p><h3 id="修改基带文件">修改基带文件</h3><ol start="3"><li>给 <code>modem.img</code> 增加大约 400KB 容量</li></ol><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">dd if=/dev/zero of=modem.img bs=4096 count=100 conv=notrunc oflag=append</span><br></pre></td></tr></table></figure><ol start="4"><li>挂载基带镜像</li></ol><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">mkdir modem_pixel</span><br><span class="line">mkdir modem_oneplus</span><br><span class="line"></span><br><span class="line">sudo mount -o loop modem.img modem_pixel</span><br><span class="line">sudo mount -o loop NON-HLOS.bin modem_oneplus</span><br></pre></td></tr></table></figure><ol start="5"><li>移植基带配置文件</li></ol><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">sudo mkdir modem_pixel/modem_pr/mcfg/configs/mcfg_sw/generic/china</span><br><span class="line"></span><br><span class="line">sudo cp -r modem_oneplus/image/modem_pr/mcfg/configs/mcfg_sw/generic/china/ct modem_pixel/modem_pr/mcfg/configs/mcfg_sw/generic/china/</span><br><span class="line"></span><br><span class="line">sudo vim modem_pixel/modem_pr/verinfo/ver_info.txt</span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">将文件中数字加 1</span></span><br></pre></td></tr></table></figure><ol start="6"><li>保存镜像</li></ol><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">sync</span><br><span class="line">umount modem_pixel</span><br><span class="line">umount modem_oneplus</span><br></pre></td></tr></table></figure><p>然后按照上面的步骤刷入重启即可。</p><h2 id="参考">参考</h2><ul><li><a href="http://bbs.gfan.com/android-9571646-1-1.html">Pixel一代电信4G LTE基带，附破解方法</a></li></ul>]]>
    </content>
    <id>https://editst.com/2020/pixel-telecom/</id>
    <link href="https://editst.com/2020/pixel-telecom/"/>
    <published>2020-04-07T12:44:24.000Z</published>
    <summary>
      <![CDATA[<p>最近在闲鱼买了一部 Pixel XL，主要是看中了它支持永久的不限容量原始画质 Google Photos 备份，而且 4+128 的配置放在现在也不算过时，可以当一部不错的备用机。由于美版机器原生系统只支持联通全网通，然而硬件上应该是支持电信和移动网络的，因此搜索到可以通过更改基带来支持电信全网通。</p>
<p>更改基带文件的总体思路是提取相同型号处理器的基带文件（这里使用的是 Oneplus 3T)加入到原生系统的基带中。由于这个手机发布时间比较长了，网上的教程历史比较悠久，大多是基于 Android 7/8 版本，而 Google 官方已经更新到了 Android 10，因此我参考<a href="http://bbs.gfan.com/android-9571646-1-1.html">这个教程</a>，基于最新的 Pixel 系统镜像 <code>9.0.0 (PQ3A.190801.002, Aug 2019)</code> 和 Oneplus 3T 系统镜像 <code>OnePlus3THydrogen_28_OTA_083_all</code> 制作了基带文件，总结如下。</p>
<p><strong>由于 Android 10 镜像内无法直接找到基带文件，且据信相较于 Android 9 基带并无更新，因此这里使用了最新的 Android 9 镜像</strong></p>
<h2 id="TL-DR">TL; DR</h2>
<p>下载我<a href="https://raw.githubusercontent.com/Editst/pixel/master/modem_patch.img">上传到 GitHub 的文件</a>，把手机连接到电脑，重启到 fastboot，使用以下命令刷入并重启即可</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">fastboot flash modem modem_patch.img --slot all</span><br><span class="line">fastboot reboot</span><br></pre></td></tr></table></figure>
<p>此后如果需要使用联通卡，需要新建接入点名称（APN）配置，APN 配置为 <code>3gnet</code>，其余不用修改，保存即可使用。</p>]]>
    </summary>
    <title>更改 Pixel 基带以支持电信 LTE</title>
    <updated>2021-05-26T01:15:21.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="转载" scheme="https://editst.com/categories/%E8%BD%AC%E8%BD%BD/"/>
    <content>
      <![CDATA[<p>王国里第一条禁令是国王的名字，说出来就会掉脑袋，但是王国里除了国王之外并没有别的话题，于是人们为国王编出昵称。</p><p>国王的名字可以用词法学方式重组、倒装，在王国里长大的孩子看懂了，就刻在墙上、写在碎纸条上让风吹走，让牧羊的孩子捡起来。国王的名字有很多的同音词，于是牧羊的孩子把这些词编成了歌，从南到北传唱了很多年。</p><p>国王发现了之后，下令禁止传颂一切指代他的名字，国王的人出动，不少谐音谐形的词遭了秧，不少字典付之一炬。</p><p>后来国王的名字只能通过比喻和寓言来指涉。比喻像是一个离家很远的人通过电话给一个盲人指路，寓言像是一个没有去过法国的人梦见了巴黎的每一块砖每一块瓦。首长、司机、龙尾骨、迎客松、复仇、壶、湖、上上签、大人、内人、讽刺剧、莎士比亚、智利人、下水、他、他们、你。聪明的比喻家连代词都要加以利用。</p><p>国王发现了之后，下令组建意义委员会，审查意义。委员会的成员们抓着光秃秃的脑壳，日夜兼程地解读世界上所有的文字，挖掘一切潜在含义。在诠释的道路上，委员们死死追着比喻家。委员抓住一个比喻，比喻家就造出一个新的词。</p><p>最后一天，比喻家发现意义用完了。国王的名字用尽了世界上所有的意义。委员会气喘吁吁地把比喻家埋了，但是这个时候，国王的名字已经世人皆知了。街上的每一个人都知道国王的名字，尽管他们说不出来。尽管他们说不出这个名字，他们在谈论花鸟树木的时候，却总是在阳否阴述地谈论国王。委员们看得目瞪口呆。</p><p>国王发现了之后，下令禁止一切语言。王国里每一个人的嘴都闭上了，但是让委员会没想到的是，国王的名字在包括了所有意义之后也成为了沉默。国王的原名不再重要，国王现在有无数个名字，无数个名字包括了人类声道能发出的一切声音的一切组合，也包括沉默。王国里每一个人的嘴都闭上了，这个王国里的沉默震耳欲聋。</p><p>国王的真名响彻宇宙！</p>]]>
    </content>
    <id>https://editst.com/2020/name-of-king/</id>
    <link href="https://editst.com/2020/name-of-king/"/>
    <published>2020-02-05T12:21:51.000Z</published>
    <summary>
      <![CDATA[<p>王国里第一条禁令是国王的名字，说出来就会掉脑袋，但是王国里除了国王之外并没有别的话题，于是人们为国王编出昵称。</p>
<p>国王的名字可以用词法学方式重组、倒装，在王国里长大的孩子看懂了，就刻在墙上、写在碎纸条上让风吹走，让牧羊的孩子捡起来。国王的名字有很多的同音词，于是]]>
    </summary>
    <title>粟添：国王的名字</title>
    <updated>2020-02-05T12:21:51.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="随笔" scheme="https://editst.com/categories/%E9%9A%8F%E7%AC%94/"/>
    <category term="年终总结" scheme="https://editst.com/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    <content>
      <![CDATA[<p>2020年，仿佛科幻电影中遥不可及的未来，就这样不可阻拦地来了。现在看来，之前的人们对于未来过于乐观，征途本该是星辰大海的人类，仍然在这颗渺小的星球上争斗不休。虽然时间总是连续不断的向前，2020年，3020年，无非是人为界定的毫无意义的刻度，然而每到这个时候，总是会不自觉的期待新的一年或许会有更好的世界吧。</p><span id="more"></span><p>19年发生了很多事情，无论是国内还是国外，无论是我自己还是身边的人，让人觉得这确实是一个时代要结束的样子。</p><p>日本平成年代结束，特朗普被弹劾，英国偷渡事件，巴黎圣母院大火，英国首相辞职，保守主义和逆全球化的趋势仿佛在向着上个世纪回退。</p><p><img src="gfw.webp" alt=""></p><p>至于国内，996从人人讨论变成习以为常，非洲猪瘟横扫全国，香港从3月开始的反修例示威一直持续到现在，华为员工看守所里度过了251天，春蕾计划被曝光资助男性，杨医生被残忍杀害……今年是柏林墙倒塌的第三十年，我国的防火长城却愈加坚固，甚至在无数人的<code>大脑</code>里建起了更有效的高墙。同时，<code>爱国</code>成了最正当的理由，只要爱国，没有什么不合理，没有什么不应该，没有什么不能做。我始终坚信个人是国家的基础，也是国家的目的，国家是为个人服务的。但显然如今的教育工作太过于成功，甚至有人觉得 GFW 的存在是好事。之前常常看到人们认为新一代人总会更好的，可我现在真的不这么觉得，他们学会了熟练利用举报来解决不同的声音，学会了用爱国做武器，却从来不会去看看这个世界有多大，不明白参差多态才是这个世界该有的样子。</p><p><img src="believe.webp" alt=""></p><p>对我自己来讲，这一年也不算是值得开心的一年。上半年李志被莫名的封杀，曾经计划一定参加一次的叁叁肆也消失不见。暑假时回校想要复习，却是整天待在宿舍，本来想去上海读研，也没有勇气报考。下半年虽说在考研，可是算起来也没有学习多久，考完后感觉也是💊。不知不觉，这一年就这么过去了，没有什么收获，却也没有什么不舍。</p><p><img src="blood.webp" alt=""></p><p>今年上半年开始成分献血，很惭愧，自己的血小板浓度不够高，基本只能一次献一个治疗量，大半年来一共13个治疗量，不过应该也能帮助到几位患者了吧。尽管我觉得世界是在变坏的，可我仍然愿意尽自己所能，向着更好的方向去推动这个世界，虽然不一定有什么效果，但再小的善良，再小的努力，也比不做好。</p><p>无论如何，我们成功的度过了这一年，活着，就算是成功了。似乎也没什么可说的了，发现自己确实是一个蛮无趣的人。最后照例祝福每一个人，新的一年要幸福。</p>]]>
    </content>
    <id>https://editst.com/2019/summary-2019/</id>
    <link href="https://editst.com/2019/summary-2019/"/>
    <published>2019-12-31T08:08:51.000Z</published>
    <summary>
      <![CDATA[<p>2020年，仿佛科幻电影中遥不可及的未来，就这样不可阻拦地来了。现在看来，之前的人们对于未来过于乐观，征途本该是星辰大海的人类，仍然在这颗渺小的星球上争斗不休。虽然时间总是连续不断的向前，2020年，3020年，无非是人为界定的毫无意义的刻度，然而每到这个时候，总是会不自觉的期待新的一年或许会有更好的世界吧。</p>]]>
    </summary>
    <title>2019 年终总结：这个世界会好吗</title>
    <updated>2021-12-30T15:19:13.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="技术" scheme="https://editst.com/categories/%E6%8A%80%E6%9C%AF/"/>
    <category term="Hexo" scheme="https://editst.com/tags/Hexo/"/>
    <category term="GitHub" scheme="https://editst.com/tags/GitHub/"/>
    <content>
      <![CDATA[<p>之前使用 Travis CI 实现了自动生成并发布 Hexo 博客，今天发现 GitHub 集成了类似的玩法，并且功能和扩展性都要好很多。本文简单修改了 <a href="https://github.com/marketplace/actions/gh-pages-deploy">GH Pages deploy</a>，可以选择 repo 和 branch，并实现了对Hexo更好的兼容，解决了更新时间的问题。</p><span id="more"></span><h2 id="准备工作">准备工作</h2><p><s>目前 GitHub Actions 仍在公测阶段，需要自行<a href="https://github.com/features/actions">申请资格</a>。</s></p><p><a href="https://github.com/settings/tokens">生成一个新的 token</a>，勾选 repo 权限，然后把 token value 存储到 GitHub repo 的 Settings/Secrets 中，命名为 <code>REPO_TOKEN</code>。</p><h2 id="添加-GitHub-Actions-配置文件">添加 GitHub Actions 配置文件</h2><p>在项目根目录添加<code>.github/workflows/hexo.yml</code>，按照下面的参考配置填写。</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">name:</span> <span class="string">Hexo</span> <span class="string">CI</span></span><br><span class="line"></span><br><span class="line"><span class="attr">on:</span></span><br><span class="line">  <span class="attr">push:</span></span><br><span class="line">    <span class="attr">branches:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">master</span></span><br><span class="line"></span><br><span class="line"><span class="attr">jobs:</span></span><br><span class="line">  <span class="attr">generate-and-deploy:</span></span><br><span class="line">    <span class="attr">runs-on:</span> <span class="string">ubuntu-latest</span></span><br><span class="line">    <span class="attr">steps:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Checkout</span></span><br><span class="line">      <span class="attr">uses:</span> <span class="string">actions/checkout@master</span></span><br><span class="line">      <span class="attr">with:</span></span><br><span class="line">        <span class="attr">submodules:</span> <span class="literal">true</span></span><br><span class="line"></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Build</span> <span class="string">node</span></span><br><span class="line">      <span class="attr">uses:</span> <span class="string">actions/setup-node@master</span></span><br><span class="line">      <span class="attr">with:</span></span><br><span class="line">        <span class="attr">node-version:</span> <span class="number">11.</span><span class="string">x</span></span><br><span class="line"></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Build</span> <span class="string">and</span> <span class="string">Generate</span></span><br><span class="line">      <span class="attr">run:</span> <span class="string">|</span></span><br><span class="line"><span class="string">        export TZ=&#x27;Asia/Shanghai&#x27;</span></span><br><span class="line"><span class="string">        git ls-files -z | while read -d &#x27;&#x27; path; do</span></span><br><span class="line"><span class="string">          touch -d &quot;$(git log -1 --format=&quot;@%ct&quot; &quot;$path&quot;)&quot; &quot;$path&quot;;</span></span><br><span class="line"><span class="string">        done</span></span><br><span class="line"><span class="string">        npm install &amp;&amp; npm install hexo-cli -g &amp;&amp; hexo generate</span></span><br><span class="line"><span class="string"></span></span><br><span class="line">    <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">Deploy</span></span><br><span class="line">      <span class="attr">uses:</span> <span class="string">Editst/GitHub-Pages-deploy@master</span></span><br><span class="line">      <span class="attr">env:</span></span><br><span class="line">        <span class="attr">BUILD_DIR:</span> <span class="string">public</span></span><br><span class="line">        <span class="attr">REPO:</span> <span class="string">YOUR_GITHUB_ID/YOUR_GITHUB_ID.github.io</span></span><br><span class="line">        <span class="attr">TARGET_BRANCH:</span> <span class="string">master</span></span><br><span class="line">        <span class="attr">EMAIL:</span> <span class="string">email@example.com</span></span><br><span class="line">        <span class="attr">GH_TOKEN:</span> <span class="string">$&#123;&#123;</span> <span class="string">secrets.REPO_TOKEN</span> <span class="string">&#125;&#125;</span></span><br></pre></td></tr></table></figure><h2 id="上传至-GitHub">上传至 GitHub</h2><p>上传后 GitHub 检测到文件夹 <code>.github/workflows</code> 中的 <code>.yml</code> 文件会自动开始执行，可以到 Actions 中查看相关的输出。祝一次成功。</p><h2 id="参考">参考</h2><ul><li><a href="https://xiaopc.org/2019/08/29/github-actions-%E6%B5%8B%E8%AF%95-%E8%87%AA%E5%8A%A8%E9%83%A8%E7%BD%B2-hexo/">Github Actions 测试 - 自动部署 Hexo</a></li></ul>]]>
    </content>
    <id>https://editst.com/2019/hexo-CI-github-actions/</id>
    <link href="https://editst.com/2019/hexo-CI-github-actions/"/>
    <published>2019-09-29T09:46:34.000Z</published>
    <summary>
      <![CDATA[<p>之前使用 Travis CI 实现了自动生成并发布 Hexo 博客，今天发现 GitHub 集成了类似的玩法，并且功能和扩展性都要好很多。本文简单修改了 <a href="https://github.com/marketplace/actions/gh-pages-deploy">GH Pages deploy</a>，可以选择 repo 和 branch，并实现了对Hexo更好的兼容，解决了更新时间的问题。</p>]]>
    </summary>
    <title>使用 GitHub Actions 持续集成 Hexo 博客并发布</title>
    <updated>2020-06-14T10:49:13.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="技术" scheme="https://editst.com/categories/%E6%8A%80%E6%9C%AF/"/>
    <category term="Hexo" scheme="https://editst.com/tags/Hexo/"/>
    <category term="GitHub" scheme="https://editst.com/tags/GitHub/"/>
    <category term="Travis" scheme="https://editst.com/tags/Travis/"/>
    <content>
      <![CDATA[<p>之前在 vps 搭建了简单的 hexo 工作环境，配合 git 发布插件可以一键发布网页。最近发现了 Travis 自动集成工具，可以方便的读取 GitHub repo 进行自动集成，只需要注册后简单配置 <code>.travis.yml</code> 即可借助 Travis CI 的发布功能直接更新到 git pages。下面简单介绍配置过程和遇到的问题。<br><strong>相比之前的方法优雅省力许多。</strong></p><span id="more"></span><h2 id="绑定-Travis-CI">绑定 Travis CI</h2><p><a href="https://github.com/marketplace/travis-ci">添加 Travis CI</a> 到你的 GitHub 账号，并<a href="https://github.com/settings/installations">允许</a> Travis CI 访问你的 repo。</p><p><a href="https://github.com/settings/tokens">生成一个新的 token</a>，勾选 repo 权限，然后把 token value 存储到 Travis CI 的环境变量 <code>GITHUB_TOKEN</code> 中去。</p><h2 id="编写-Travis-CI-配置">编写 Travis CI 配置</h2><p>下面直接给出参考配置，来自 <a href="https://hexo.io/docs/github-pages">Hexo 官方文档</a> 并稍做修改。</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">language:</span> <span class="string">node_js</span></span><br><span class="line"><span class="attr">node_js:</span> <span class="string">stable</span></span><br><span class="line"><span class="attr">cache:</span> <span class="string">npm</span></span><br><span class="line"><span class="attr">branches:</span></span><br><span class="line">  <span class="attr">only:</span></span><br><span class="line">  <span class="bullet">-</span> <span class="string">master</span></span><br><span class="line"><span class="attr">git:</span></span><br><span class="line">  <span class="attr">depth:</span> <span class="literal">false</span></span><br><span class="line"><span class="attr">before_install:</span> <span class="comment"># 恢复之前文章的修改时间</span></span><br><span class="line"><span class="bullet">-</span> <span class="string">export</span> <span class="string">TZ=&#x27;Asia/Shanghai&#x27;</span></span><br><span class="line"><span class="bullet">-</span> <span class="string">&quot;git ls-files -z | while read -d &#x27;&#x27; path; do touch -d \&quot;$(git log -1 --format=\&quot;@%ct\&quot; \&quot;$path\&quot;)\&quot; \&quot;$path\&quot;; done&quot;</span></span><br><span class="line"><span class="attr">script:</span></span><br><span class="line"><span class="bullet">-</span> <span class="string">hexo</span> <span class="string">generate</span></span><br><span class="line"><span class="attr">deploy:</span></span><br><span class="line">  <span class="attr">provider:</span> <span class="string">pages</span></span><br><span class="line">  <span class="attr">skip_cleanup:</span> <span class="literal">true</span></span><br><span class="line">  <span class="attr">github_token:</span> <span class="string">$GITHUB_TOKEN</span></span><br><span class="line">  <span class="attr">keep_history:</span> <span class="literal">true</span></span><br><span class="line">  <span class="attr">on:</span></span><br><span class="line">    <span class="attr">branch:</span> <span class="string">master</span></span><br><span class="line">  <span class="attr">repo:</span> <span class="string">Editst/editst.github.io</span></span><br><span class="line">  <span class="attr">local_dir:</span> <span class="string">public</span></span><br><span class="line">  <span class="attr">target_branch:</span> <span class="string">master</span></span><br></pre></td></tr></table></figure><p>注意如果使用了第三方主题，需要使用子模块添加相应的主题。</p><h2 id="上传至-GitHub">上传至 GitHub</h2><p>至此全部配置结束，检查工作目录是否包含下面所有目录和文件。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">.</span><br><span class="line">├── .travis.yml</span><br><span class="line">├── _config.yml</span><br><span class="line">├── db.json</span><br><span class="line">├── package.json</span><br><span class="line">├── scaffolds</span><br><span class="line">├── source</span><br><span class="line">│   ├── CNAME</span><br><span class="line">│   ├── _posts</span><br><span class="line">│   ├── categories</span><br><span class="line">│   ├── img</span><br><span class="line">│   └── tags</span><br><span class="line">└── theme</span><br></pre></td></tr></table></figure><p>然后就可以开心地上传到 GitHub 享受持续集成的快感了。可以去官网查看实时的 log 输出，排查问题。祝一次成功！</p><h2 id="折腾版">折腾版</h2><p>下面是之前的方法，要麻烦不少，想折腾的话随意。</p><h3 id="注册-Travis">注册 Travis</h3><p>使用 GitHub 账号在<a href="https://travis-ci.com/">官网</a>进行绑定，选择上传源码的 repo 绑定即可。</p><h3 id="安装-Travis-CML">安装 Travis CML</h3><p>如果不需要使用 Travis 进行文件加密来保护密钥等内容，可以略过这一步。在这里由于要进行发布操作，必须 ssh 私钥，因此使用 Travis 对私钥文件进行加密，保护安全。如果你对 GitHub 足够放心，可以创建私有仓库并直接上传私钥，省略该步骤。不过十分不建议这样做。</p><p>首先确保 vps 装有 ruby，然后安装 Travis CML，按提示登录 GitHub 账号即可。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">gem install travis</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">travis login</span></span><br></pre></td></tr></table></figure><h3 id="编辑-travis-配置">编辑 travis 配置</h3><p>下面直接给出我的配置文件，参考自<a href="https://kchen.cc/2016/11/12/hexo-instructions/#Travis-CI-%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90">基于 Hexo 的全自动博客构建部署系统</a></p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">language:</span> <span class="string">node_js</span></span><br><span class="line"><span class="attr">node_js:</span> <span class="string">stable</span></span><br><span class="line"><span class="attr">branches:</span></span><br><span class="line">  <span class="attr">only:</span></span><br><span class="line">  <span class="bullet">-</span> <span class="string">master</span></span><br><span class="line"><span class="attr">cache:</span></span><br><span class="line">  <span class="attr">directories:</span></span><br><span class="line">    <span class="bullet">-</span> <span class="string">node_modules</span></span><br><span class="line"><span class="attr">before_install:</span></span><br><span class="line"><span class="comment"># 配置ssh</span></span><br><span class="line"><span class="bullet">-</span> <span class="string">mv</span> <span class="string">id_ed25519</span> <span class="string">~/.ssh/</span></span><br><span class="line"><span class="bullet">-</span> <span class="string">chmod</span> <span class="number">600</span> <span class="string">~/.ssh/id_ed25519</span></span><br><span class="line"><span class="bullet">-</span> <span class="string">eval</span> <span class="string">$(ssh-agent)</span></span><br><span class="line"><span class="bullet">-</span> <span class="string">ssh-add</span> <span class="string">~/.ssh/id_ed25519</span></span><br><span class="line"><span class="bullet">-</span> <span class="string">cp</span> <span class="string">ssh_config</span> <span class="string">~/.ssh/config</span></span><br><span class="line"><span class="comment"># 安装hexo</span></span><br><span class="line"><span class="bullet">-</span> <span class="string">npm</span> <span class="string">install</span> <span class="string">-g</span> <span class="string">hexo-cli</span></span><br><span class="line"><span class="bullet">-</span> <span class="string">npm</span> <span class="string">install</span> <span class="string">hexo-deployer-git</span> <span class="string">--save</span></span><br><span class="line"><span class="comment"># 下载主题和插件</span></span><br><span class="line"><span class="bullet">-</span> <span class="string">git</span> <span class="string">clone</span> <span class="string">https://github.com/theme-next/hexo-theme-next</span> <span class="string">themes/next</span></span><br><span class="line"><span class="bullet">-</span> <span class="string">git</span> <span class="string">clone</span> <span class="string">https://github.com/theme-next/theme-next-fancybox3</span> <span class="string">themes/next/source/lib/fancybox</span></span><br><span class="line"><span class="bullet">-</span> <span class="string">git</span> <span class="string">clone</span> <span class="string">https://github.com/theme-next/theme-next-jquery-lazyload</span> <span class="string">themes/next/source/lib/jquery_lazyload</span></span><br><span class="line"><span class="attr">install:</span></span><br><span class="line"><span class="bullet">-</span> <span class="string">npm</span> <span class="string">install</span></span><br><span class="line"><span class="attr">script:</span></span><br><span class="line"><span class="bullet">-</span> <span class="string">hexo</span> <span class="string">generate</span></span><br><span class="line"><span class="attr">after_success:</span></span><br><span class="line"><span class="bullet">-</span> <span class="string">hexo</span> <span class="string">deploy</span></span><br></pre></td></tr></table></figure><p>每项配置的具体说明可以参考上面的文章，有十分详细的介绍。这里只说一下我遇到的小问题。</p><h4 id="主题和插件">主题和插件</h4><p>由于本网站使用了 next 主题，而且同步到 GitHub 的源码中不包含主题部分，因此需要同时下载该主题文件和开启的插件。需要注意的是路径要确保正确，否则生成的网页会无法加载所需的 js 脚本。</p><h4 id="加密私钥">加密私钥</h4><p>我使用的是 ed25519 算法生成的私钥，默认位于 <code>~/.ssh/id_ed25519</code>，下面以此为例，可以根据自己的具体配置进行调整。</p><p><strong>请确保当前所在目录名称和repo名称相同，否则 Travis 无法上传加密后的环境变量。</strong></p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash"><span class="built_in">cp</span> ~/.ssh/id_ed25519 .</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">travis encrypt-file id_25519 --add</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash"><span class="built_in">rm</span> id_ed25519</span></span><br></pre></td></tr></table></figure><p>运行后会自动在 <code>.travis.yml</code> 添加以下内容</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="bullet">-</span> <span class="string">openssl</span> <span class="string">aes-256-cbc</span> <span class="string">-K</span> <span class="string">$encrypted_**********_key</span> <span class="string">-iv</span> <span class="string">$encrypted_**********_iv</span> <span class="string">-in</span> <span class="string">id_ed25519</span> <span class="string">-out</span> <span class="string">id_ed25519</span> <span class="string">-d</span></span><br></pre></td></tr></table></figure><p>对应的环境变量会自动上传到 Travis，可以在设置中进行查看。在集成时 Travis 会对加密文件进行解密，生成需要的私钥文件。</p><p>之后编辑一份 ssh 配置文件。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">Host github.com</span><br><span class="line">  User git</span><br><span class="line">  StrictHostKeyChecking no</span><br><span class="line">  IdentityFile ~/.ssh/id_ed25519</span><br><span class="line">  IdentitiesOnly yes</span><br></pre></td></tr></table></figure><p>至此全部配置结束，检查工作目录是否包含下面所有文件，特别是标记星号的文件</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">.</span><br><span class="line">├── _config.yml*</span><br><span class="line">├── db.json*</span><br><span class="line">├── id_rsa.enc</span><br><span class="line">├── node_modules</span><br><span class="line">├── package.json*</span><br><span class="line">├── scaffolds*</span><br><span class="line">├── source*</span><br><span class="line">│   ├── CNAME</span><br><span class="line">│   ├── _posts</span><br><span class="line">│   ├── categories</span><br><span class="line">│   ├── img</span><br><span class="line">│   └── tags</span><br><span class="line">└── ssh_config*</span><br></pre></td></tr></table></figure><p>然后就可以开心地上传到 GitHub 享受持续集成的快感了。可以去官网查看实时的 log 输出，排查问题。祝一次成功！</p><h2 id="参考">参考</h2><ul><li><p><a href="https://docs.travis-ci.com/user/deployment/pages/">GitHub Pages Deployment - Travis CI</a></p></li><li><p><a href="https://hexo.io/docs/github-pages">GitHub Pages | Hexo</a></p></li><li><p><a href="https://wafer.li/Hexo/%E8%A7%A3%E5%86%B3%20Travis%20CI%20%E6%80%BB%E6%98%AF%E6%9B%B4%E6%96%B0%E6%97%A7%E5%8D%9A%E5%AE%A2%E7%9A%84%E9%97%AE%E9%A2%98/">解决 Travis CI 总是更新旧博客的问题</a></p></li><li><p><a href="https://kchen.cc/2016/11/12/hexo-instructions/#%E9%85%8D%E7%BD%AE-Travis-1">基于 Hexo 的全自动博客构建部署系统</a></p></li><li><p><a href="https://docs.travis-ci.com/user/encrypting-files/">Encrypting Files - Travis CI</a></p></li></ul>]]>
    </content>
    <id>https://editst.com/2019/travis/</id>
    <link href="https://editst.com/2019/travis/"/>
    <published>2019-06-05T16:51:27.000Z</published>
    <summary>
      <![CDATA[<p>之前在 vps 搭建了简单的 hexo 工作环境，配合 git 发布插件可以一键发布网页。最近发现了 Travis 自动集成工具，可以方便的读取 GitHub repo 进行自动集成，只需要注册后简单配置 <code>.travis.yml</code> 即可借助 Travis CI 的发布功能直接更新到 git pages。下面简单介绍配置过程和遇到的问题。<br>
<strong>相比之前的方法优雅省力许多。</strong></p>]]>
    </summary>
    <title>使用 Travis CI 生成 hexo 博客</title>
    <updated>2020-06-14T02:55:13.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="技术" scheme="https://editst.com/categories/%E6%8A%80%E6%9C%AF/"/>
    <category term="Source Han Sans" scheme="https://editst.com/tags/Source-Han-Sans/"/>
    <category term="Source Han Serif" scheme="https://editst.com/tags/Source-Han-Serif/"/>
    <category term="Acrobat" scheme="https://editst.com/tags/Acrobat/"/>
    <content>
      <![CDATA[<p>由于 Windows 系统自带的字体显示效果较差，特别是日常使用最多的宋体和黑体，因此在日常编辑文件时使用了<a href="https://github.com/adobe-fonts/source-han-sans">思源黑体（Source Han Sans）</a>和<a href="https://github.com/adobe-fonts/source-han-serif">思源宋体（Source Han Serif）</a>进行替代，显示效果更优秀。</p><p>根据官方建议，选择了 Super OTC 字体文件安装使用。</p><blockquote><p><strong>Super OTC</strong></p><p>Select this deployment format if you want all five languages and all seven weights, along with the half-width (HW) variations that are provided only for the Regular and Bold weights, in a single and easy-to-manage font resource that includes 45 fonts. Changing languages is accomplished by either selecting the font of the desired language or by language-tagging the text. A limited number of apps support language tagging and the corresponding OpenType ‘locl’ (Localized Forms) GSUB feature, such as Adobe InDesign CC and modern browsers.</p></blockquote><p>然而在使用 Microsoft Word 导出 PDF 时发现生成的文件中文字内容被转成图片格式，说明使用的 otc 文件不能完全兼容，无法内嵌到 PDF 文件中。改用网友制作的 ttf 文件后发现生成的 PDF 文件过大，包含了整个字体集。</p><span id="more"></span><p>为了解决这个问题，安装了 Adobe Acrobat DC，然而在生成 PDF 时出现报错。可以看到是因为没有寻找到 SourceHanSerif 字体资源，在网络上也没有寻找到相关的解决办法。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">%%[ ProductName: Distiller ]%%</span><br><span class="line">%%[ Error: undefinedresource; OffendingCommand: findresource ]%%</span><br><span class="line"></span><br><span class="line">Stack:</span><br><span class="line">/CIDFont</span><br><span class="line">/SourceHanSerif-Regular</span><br><span class="line">&#123;--pop-- 4 --index-- --add--&#125;</span><br><span class="line">/SourceHanSerif-Regular-hf</span><br><span class="line">/WinCharSetFFFF-H</span><br><span class="line">/SourceHanSerifSC-RegularH</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%</span><br><span class="line">%%[ Warning: PostScript error. No PDF file produced. ] %%</span><br></pre></td></tr></table></figure><p><strong>经过反复重装字体尝试后，无意发现使用官方提供的 otf 格式<a href="https://github.com/adobe-fonts/source-han-sans/tree/release#language-specific-otfs">字体文件</a>可以解决这一问题。</strong></p><p>然而这还是不能解决 Word 导出时的字体嵌入问题，因此现在的情况是使用 Word 直接导出时思源字体仍然会被转成图片格式。（不过这倒是可以用来保护生成的文件</p>]]>
    </content>
    <id>https://editst.com/2019/source-han/</id>
    <link href="https://editst.com/2019/source-han/"/>
    <published>2019-06-03T15:41:03.000Z</published>
    <summary>
      <![CDATA[<p>由于 Windows 系统自带的字体显示效果较差，特别是日常使用最多的宋体和黑体，因此在日常编辑文件时使用了<a href="https://github.com/adobe-fonts/source-han-sans">思源黑体（Source Han Sans）</a>和<a href="https://github.com/adobe-fonts/source-han-serif">思源宋体（Source Han Serif）</a>进行替代，显示效果更优秀。</p>
<p>根据官方建议，选择了 Super OTC 字体文件安装使用。</p>
<blockquote>
<p><strong>Super OTC</strong></p>
<p>Select this deployment format if you want all five languages and all seven weights, along with the half-width (HW) variations that are provided only for the Regular and Bold weights, in a single and easy-to-manage font resource that includes 45 fonts. Changing languages is accomplished by either selecting the font of the desired language or by language-tagging the text. A limited number of apps support language tagging and the corresponding OpenType ‘locl’ (Localized Forms) GSUB feature, such as Adobe InDesign CC and modern browsers.</p>
</blockquote>
<p>然而在使用 Microsoft Word 导出 PDF 时发现生成的文件中文字内容被转成图片格式，说明使用的 otc 文件不能完全兼容，无法内嵌到 PDF 文件中。改用网友制作的 ttf 文件后发现生成的 PDF 文件过大，包含了整个字体集。</p>]]>
    </summary>
    <title>Acrobat DC 思源字体兼容问题</title>
    <updated>2019-06-03T15:41:03.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="转载" scheme="https://editst.com/categories/%E8%BD%AC%E8%BD%BD/"/>
    <category term="演讲" scheme="https://editst.com/tags/%E6%BC%94%E8%AE%B2/"/>
    <category term="中美关系" scheme="https://editst.com/tags/%E4%B8%AD%E7%BE%8E%E5%85%B3%E7%B3%BB/"/>
    <content>
      <![CDATA[<p>新加坡总理李显龙出席今年的香格里拉对话（Shangri-La Dialogue），并在开幕晚宴上发表主旨演讲，强调稳定和具建设性的中美关系对区域安全的重要性。</p><p>李显龙总理演讲全文如下：</p><p>国际战略研究所所长约翰.奇普曼博士阁下</p><p>各位阁下</p><p>各位嘉宾,女士们、先生们</p><p>大家晚上好!</p><p>欢迎各位来到新加坡并出席第 18 届香格里拉对话会。</p><p>世界正处于一个转折点。全球化受到多方的抨击,美国和中国的关系日益紧张。新加坡和许多其他国家一样,非常担心这样的趋势。我们既不知道形势会如何发展,也不晓得世界各国是否能够携手开辟新的出路,一同维护世界和平与繁荣。</p><span id="more"></span><p>我们是否能从东南亚历史中得到启示,在求取进步的道路上避开过去的动乱与灾难?今年是新加坡开埠200周年。200年前,英国人史丹福.莱佛士登陆新加坡,并在这里设立了贸易站。当时,荷兰人已经对东印度群岛进行殖民统治。比起其他欧洲国家,英国人到东南亚寻求发展相对较晚。莱佛士当时是明古连(位于苏门答腊西岸)副总督。 他意识到这个地区的巨大贸易潜力,因此决定在马六甲海峡沿岸寻找新的地点,为英国东印度公司设立贸易站。于是,他选择了新加坡,而这也改变了我们的命运。</p><p>荷兰人强烈抗议莱佛士的举动,但徒劳无功。为了保护其垄断地位,荷兰人禁止其它国家的船只在荷兰管辖的港口运行,或向这些船只征收昂贵的关税。莱佛士采取了不同的管理方式。他在新加坡设立了自由贸易港。贸易和人口迅速增长,显示了英国所采取的较开放贸易政策,更具成效。</p><p>在之后的一个世纪,东南亚由英国、荷兰、西班牙和法国分治,美国之后也在东南亚进行殖民统治。殖民强国之间的竞争非常激烈,但没有一个国家能在整个区域中占主导地位。</p><p>到了二十世纪,列强仍在东南亚为各自的利益展开争夺。1941年,日本帝国侵略了法属中南半岛。美国向日本进行反击,禁止向日本出口石油。 这引爆了太平洋战争。日本轰炸美国珍珠港当天,也进攻马来亚和新加坡。新加坡被日本占领,在长达三年零八个月的日据时期里,人民饱受压迫,在恐惧中度过了苦难岁月。</p><p>到了冷战时期,东南亚再次成为战争前线。这个区域被划分成共产主义与非共产主义国家。共产主义和非共产主义之间的代理战争也随后在越南展开。同时,中国在东南亚各地,包括马来亚和新加坡等非共产主义国家,支持当地共产党的革命行动,提倡武装起义。</p><p>这局势促使了五个非共产主义国家,即印度尼西亚、马来西亚、菲律宾、新加坡和泰国,在 1967 年成立亚细安(中国称“东盟”)。这是个非凡的成就,也体现了五国领导人的政治家风范。当时,这五个国家之间仍存有不少记忆犹新的纠纷与冲突,伤痕也未完全愈合。然而,它们愿意冰释前嫌、放下矛盾,朝亚细安共同体的方向迈进,展开了对话与合作,并建立友谊。它们一起融入世界经济,与先进国家发展贸易关系,经济也随着繁荣起来。至于位处中南半岛的共产主义国家,它们受到持续战乱和计划经济的牵制,发展步伐较为缓慢。</p><p>冷战结束后,美国成为了当时世界唯一的超级强国,东南亚也进入新的发展阶段。随着中南半岛战争的结束,共产主义国家也逐渐对外开放。 越南之前入侵柬埔寨,因此对邻近非共产国家的安全构成严重威胁。但最后,越南、老挝、柬埔寨和缅甸还是加入了亚细安。大家化干戈为玉帛,共同谋求发展。</p><p>接下来数十年里,稳定的外部环境为东南亚的发展提供了良好条件。另一方面,美国在亚太地区扮演了主导角色,并在维持区域的稳定和安全方面发挥了作用。随着国际贸易迅速扩张,各国纷纷消除贸易壁垒,而引领者往往是美国。 亚细安各国也通过出口型增长和外来投资取得了蓬勃的发展。世界贸易组织和《联合国海洋法公约》(United Nations Convention on the Law of the Sea,简称 UNCLOS)等国际框架制定规则、处理纠纷、平衡相争利益以及促进大小国家之间的合作。起初,中国的经济影响力不大。不过,随着中国的经济开始腾飞,它便逐渐成为亚细安国家重要的经济伙伴,以及区域事务的重要参与者。</p><p>我重述这段历史,是为了表明大国博弈对东南亚来说并不陌生,并将当下的战略局势和历史背景联系起来。中美关系是现今世界最重要的双边关系,两国如何处理彼此的紧张关系和摩擦将决定整个国际环境的未来走向。</p><p>这几十年来,中美关系已发生了显著的改变。中国自四十年前改革开放以来,已出现巨大变化。今天,中国的实际人均国内生产总值已经增加了25倍以上。与此同时,中国也晋升为世界第二大经济体。</p><p>从各方面来看,中国的经济增长对中国本身,乃至全世界,都带来巨大好处。中国在很大的程度上已将其中央计划经济转变为中等收入及市场驱动型经济,但离完全的市场经济还有一段距离。此外,中国也成功让超过 8 亿 5000 万中国人脱贫,这样的成就在人类历史上是前所未有的。</p><p>中国的发展与成功也让全世界受惠。中国已成为一个庞大的生产和制造基地,为全世界降低了制造成本。中国最初生产的是劳动密集型的产品,现在则逐渐转向生产高价值和技术密集的产品。中国也是一个庞大的市场,因为中国从世界各地进口各种产品,包括商品、电子零件、客机和美酒等。全世界数十亿消费者购买各种中国制造的商品,包括芭比娃娃、篮球、无人机和智能手机,这些商品往往也用到其他国家生产的零件和科技。</p><p>相反,假设中国四十年前没有进行改革开放、经济没有增长,中国可能将面对诸多国内问题,其中还可能包括继续输出武装革命。这将在许多方面波及国际社会。 中国成千上万的人民如果意识到自己的国家因为没能跟上全球化的发展而落后于其他国家,必定会感到愤愤不平。 30 年前,中国还是一个贫困国家,邓小平先生出访美国时,时任美国总统吉米·卡特就问他,是否会放宽移民政策,让更多中国人移民。邓小平先生的回复是:“总统先生,您愿意接收多少中国人呢?一千万、两千万、 还是三千万名中国人?”</p><p>所幸,中国的成功让世界避开了这个灾难性的结果。中国的增长改变了战略平衡,也转移了世界的经济重心,而这种改变还会持续下去。</p><p>中国和其他国家都必须做出调整,适应新局势。中国必须意识到它的成功开创了全新的世界格局,不能期望其他国家继续以扶助弱小国家的方式相待。尽管中国可能还需要几十年才能成为一个真正的发达先进国家,却不能到了几十年后才肩负起更大的国际责任。</p><p>中国从国际体系获益良多,因此,维护现有体系,使其顺利运作,造福国际社会,在相当的程度上也符合它自身的利益。中国领导人已站出来强烈表达了对全球化和以规则为基础的国际秩序的支持。现在,它必须通过行动来说服国际社会,在处理双边关系时,中国不会采取重商主义的做法,只把合作看成交易,而是以开明和包容的态度看待其长远利益。</p><p>例如,18 年前,中国刚加入世贸组织时,其商品贸易还不到全球贸易的 4%。 时移世易,中国如今的商品贸易已经提升两倍,占全球11.8%。因此,从政治角度来说,其他国家已无法接受中国继续享有在加入世贸组织时所获得的贸易安排和优惠措施。维护国际贸易架构,并对现有的安排作出及时调整,以增进中国和贸易伙伴之间的互惠与平等关系,避免国际贸易体系崩溃瓦解,这些都符合中国的利益,也与它今时今日较为发达的状态相称。</p><p>同样的,在国际安全方面,中国既已跻身强国之列,国防预算位列世界第二,其言行就会受到国际社会的关注。为了捍卫领土和贸易路线,中国自然会寻求发展先进和强大的军事实力,不仅要成为陆地强国,也有意建设海洋强国,这些都是可以理解的。与此同时,中国仍须以克制的方式展现实力,并按照国际规范行事,以符合自身的利益。</p><p>中国与其他国家之间不时会发生纠纷和摩擦。南中国海主权声索相互重叠就是一例。中国应该按照国际法,包括联合国海洋法公约和平解决这些争端,并通过外交途径达成妥协,而不是诉诸武力或武力威胁,同时正视其它国家的核心利益和权利。久而久之,中国将被视为负责任的仁慈大国, 其他国家不但无需感到畏惧,也会因为仰赖它维护本区域稳定与和平而更尊重中国。长远来看,这将让中国在有利和友善的国际环境中持续发展,并提高中国在世界的影响力和地位。</p><p>另一方面,各国也必须适应一个更具影响力的中国。大家必须接受中国会继续壮大的事实,并且了解阻止中国不断强大是不可能的事,更非明智之举。和其他国家一样,中国也拥有合理的利益和期望,包括开发本土的高端科技,如资讯通信和人工智能。作为国际体系的主要利益相关者,中国必须能在国际机构如国际货币基金组织、世界银行和世界贸易组织等,扮演恰如其分和具建设性的角色,否则它会另起炉灶。</p><p>作为世界头号强国,美国所必须做的调整最为艰难。无论这项工作有多艰难,如果美国能取得新共识,让中国的期望融入现有的规则和规范体制,这将为两国带来好处。我们必须为多个领域拟定新规则,包括贸易、知识产权、网络安全和社交媒体。中国会希望对这些改变拥有话语权,因为现有的规则是以前拟定的,中国当时没有参与。这是个合理的要求。</p><p>最重要的是,美国和中国必须和其他国家合作,共同提升而不是颠覆国际体系。要实现这点,中美两国都必须从对方的角度看待问题,才能更清楚了解彼此应如何协调各自的利益。</p><p>可是,现在的情况是,中美关系因为好几个课题而变得更紧张,包括网上间谍活动、第五代网络(5G)科技、自由航行权、人权和已经导致两国陷入僵局的贸易课题。</p><p>如果双方把争端纯粹视为贸易问题来处理,我相信它们的贸易谈判代表们将能够解决问题。但是,如果某方想利用贸易规则来打压对方,或认为对方正试图这么做,那么这场纠纷将无法化解,而其后果将远比国内生产总值的损失来得惨重。中美两国的广泛关系将受到严重的打击,其他方面如投资、科技以及两国人民之间的关系也会受到影响。中美两国的一举一动都可能被对方视为挑衅,并促使对方做出反击。如此一来,世界将陷入一个更为分化和不安的局面。</p><p>令人担忧的是,双方的态度确实变得更加强硬。美国近期发布的《战略安全报告》和《国防战略摘要》两份报告,形容中国为“战略竞争对手”与“修正主义大国”。美国总统特朗普近日签署的《确保信息通信技术与服务供应链安全》行政命令,更表明是针对“外国对手”。这项行政命令虽然没有具体点出任何国家,但已清楚显示美国要采取什么行动。</p><p>美国共和党和民主党正逐渐达成共识,认为美国长久以来被中国利用;并指责中国通过不正当的手段,在某些先进科技领域如人工智能和部分的国防科技方面迎头赶上,甚至超越美国;以及中国不但没有效仿美国,转向政治开放,反而背道而驰,因此对美国所主导的价值观和其领导地位造成威胁。</p><p>美国人如今公开谈论如何遏制中国崛起,如同他们当年对苏联的全方位遏制措施,并希望尽早行动、以免为时太晚。这种对中国的负面看法已经渗透美国的体制。除了特朗普政府,还包括美国国会、军事、媒体、学者、非政府机构等。较折中的观点已被边缘化了。</p><p>就连美国企业对中国的看法也恶化了。以往,美国企业是中国最坚定的支持者,因为中国的经济增长所带来的经济机遇让它们直接受益。 它们大力支持中国加入世界贸易组织。当保护主义或本土意识早在美国抬头时,它们愿意为中国说公道话,在提倡中美保持良好关系方面起到正面作用。</p><p>但如今,美国企业对中国持有的善意都几乎不复存在。美国企业觉得中国辜负了它们的期望,不但没有调整其经济和投资政策,甚至还系统性地实施对在华营业的美国和外国企业不利的措施,但中国企业却能在美国自由运作。美国企业要求中方给予它们更大的市场准入权,而不仅是将中国当作全球供应链的一部分。许多欧洲企业也有同感。外企作为重要的支持者,对中国已不存善意对中国而言是个严重的问题,中方还未真正意识到这点,或加以应对。</p><p>另外,中国人对美方的态度也变得更强硬。有些人认为美国正试图阻挠中国成为世界强国的雄心抱负。他们相信,无论中国做什么,或是在各别课题上做出让步,美国永远都不会满意。他们对中美“文明冲突”的论述感到担忧,也不接受任何他们视为是美国试图将其政治体制和价值观强加于中国的做法。</p><p>与此同时,中国国内也掀起了一股激烈的民族主义思潮。中国电视台正重播抗美援朝战争的旧片。最近网络上也流传一首名为“贸易战”的歌曲,其音乐取自上世纪 60 年代抗日战争影片的主题曲。中国方面,无论是政府官员、智囊团或媒体,几乎没有人愿意站出来以一种更正面、更温和的方式来解读美国的意图。</p><p>中美之间基本的问题是双方缺乏战略互信,而这不利于双方作出任何让步或和解。如果让这种情形持续下去,对中美双方来说都是严重的错误。中美对峙未必一定发生。不过万一真的发生,后果将和冷战完全不同。</p><p>首先,中美之间不存在无法化解的根本意识形态分歧 。虽然中国就政治体制而言是个共产主义国家,但它在很多方面却是采纳资本市场原则。冷战时期,苏联企图颠覆世界秩序。但中国大致上遵循由美国主导、以现有多边机构组成的规则框架,并从中受惠。冷战时期,共产集团试图将共产主义输出到世界各地。但今天的中国并没有试图把其他国家变成共产国家,事实上,中国经常被指过于乐意和一些国家和领袖进行贸易往来,不论他们的名声和地位如何。中国所给予的理由是它不干涉其他国家的内政。</p><p>第二,中国与世界各国的经贸联系紧密,是世界经济一大枢纽。苏联对外则采取封闭政策,与苏联集团以外的经济联系微乎其微。 事实上,美国在亚洲的盟友,包括日本、韩国、菲律宾、泰国和澳大利亚,以及包括新加坡在内的许多区域伙伴国,它们的最大贸易伙伴国都是中国。这些国家都希望美国和中国能够化解彼此之间的分歧,同时也希望能继续和两国维持友好关系。这些国家在扩大它们和中国的贸易往来时,也努力加强与美国的安全与经贸关系。如果爆发“新冷战”,朋友与敌人之间的界限将非常模糊。要在亚洲成立相等于北约还是华沙条约组织的军事同盟,把亚洲或是太平洋硬生生分成两半,那是不可能的事。</p><p>如果中美两国真的发生冲突,后果会是如何呢?冷战结束时,苏联以及华沙条约组织成员国僵化的计划经济不堪庞大的国防开销所带来的压力,而彻底崩溃。即便如此,整个过程也历时40年。我们很难想象蓬勃的中国经济会同样崩溃。</p><p>另一方面,中国也无法轻易扳倒美国。到目前为止,美国仍然是世界第一强国,它的经济是世界上最具创新力和最强大的,其军事力量和开支也远远超过中国。美国人担心中国会赶上美国,但尽管中国在一些领域可能领先美国, 中国仍需要很长的时间,才能和美国分庭抗礼。美国也绝非如一些中国人所说的正走向没落,也没有自我封闭。相反,美国很清楚地表明会以不同的方式,全力以赴与其他国家竞争。</p><p>中美关系若持续紧张和不明朗,即便最后没有发生严重冲突,也将对全球带来巨大破坏。很多重要的课题如朝鲜半岛局势,核不扩散和气候变化等问题,若没有中美两国和其他国家的全面参与,将难以解决。经济上的损失不只是世界生产总值的一到两个百分点,而是失去全球一体化市场和生产链,以及分享知识和各方面所取得的突破的利益。这些发展都让各国发展更加迅速。</p><p>因此, 我们必须尽最大的能力避免冲突的发生,以免双方产生长久难以根除的敌意。 当然,双方的安全机构和国防部门的职责是考虑所有不可想象的情况,包括最坏的情况,做好准备。不过,政治领袖有责任找出解决方案,避免冲突恶化而导致灾难性的后果。</p><p>这相当不容易,因为双方领导都面对不少国内压力。美国方面,政治氛围严重分歧,不满情绪持续上升。美国社会大部分已对全球化和多边主义失去信心。皮尤研究中心(Pew Research Center)去年的调查发现,将近一半的美国人对中国的印象并不好。随着美国大选的脚步逼近,美国民众看待中国的态度肯定会更强烈,因为无论是共和党或是民主党候选人,都不愿意被指对中国的态度有所软化。不论特朗普总统能否连任,或共和党和民主党两党之间鹿死谁手,美国民众这样的情绪都难以改变。</p><p>中国虽然没有美国式的总统选举,不过中国领导所面对的内部压力也不少。中方领导注重国情,深刻了解需要着手解决重大国内课题,包括经济增长分配不均、农村贫困问题、人口老化以及民众对于生活品质的要求不断提升。</p><p>中美双方领导对于被视为“软弱”都非常敏感。美国出于政治需求,必须让自己在任何谈判中都显得略胜一筹。另一方面,中国由于和西方国家有着相关的历史包袱,其领导人不能被视为向西方屈服,被迫接受新的不平等条约。就在几周前,中国举办了五四运动的百年纪念活动。1919 年,当时羸弱的中国被迫接受其他大国在凡尔赛和平会议提出的条件。这促使北京大学学生发起街头示威和抗议,连带发起了民族主义运动,以实现国家的现代化,从而复兴中国。这是中国现代历史上开创性的时刻。</p><p>这样的零和思维导致中美双方难以达成政治协议。然而,归根究底,中国和美国达成某种协议是符合双方利益的做法,因此两国都必须说服自己的人民接受所达成的协议。中美也必须保持双边关系的稳定,以便专注于国内事务,无需为处理双边关系而分心。</p><p>其他国家要如何共同遏制愈加强烈的敌意,以及愈渐不稳定的局势?诸如新加坡这般的小国能力有限,无法影响大国的决策,但这并不意味着我们完全任人支配。</p><p>中小型国家有许多机会合作,深化经济合作关系、推进区域一体化,并建立多边机构。这样一来,小国就可以联合起来,扩大其影响力,在关乎自身的课题上采取共同的立场,包括贸易、安全或科技等方面。</p><p>诚然,现今的多边机构仍有许多有待改进的空间。世贸组织虽然是国际系统二战后创建的重要国际机构之一,现在却近乎瘫痪,急需改革。世贸组织成员国之间的利益和理念天差地别,但任何协议却需要所有 164 个成员国完全达成共识,这使得像乌拉圭回合谈判这等全球多边贸易协定变得不切实际。更何况,世贸组织是为以农业和制造业为基础的全球经济而设计的,但现在的全球局势却已不同,主要以服务业为主,数码科技和知识产权也逐渐变得更重要。这意味着我们需要为这些产业制定更复杂的规则。</p><p>美国对世贸组织已经失去信心。美国现在经常在世贸组织规则之外,单方面征收关税和实施贸易制裁。美国也偏向于选择双边贸易协定,与比它小的国家进行一对一的谈判。相较于维护多边体制的广泛利益,这个做法更能让美国从纠纷中直接获利。这种美国优先的做法让友国十分担忧。</p><p>新加坡不能持有相同的观点。身为小国,新加坡在双边谈判中自然处于较不利的地位。我们需要改革并强化多边体系,而不是削弱或阻碍其发展。更重要的是,如果我们把国与国之间的合作局限在双边合作上,将意味着我们无法享有多边合作所带来的双赢机会。此外,我们也需要建立更广泛的区域甚至是国际合作架构。多个国家共同加深经济合作,不仅能够促进彼此的繁荣,还能加强集体安全。这是因为它们对彼此的成功存在利害关系,使它们更有推动力维护有利和平的国际秩序。这样一来,许多国家无论大小,都能从中受惠。</p><p>因此,如果不能推进全球多边贸易协议,我们至少必须继续推进区域或诸边贸易协议。这或许不是最理想的解决方案,但这是务实的做法,让各国能逐步减少贸易壁垒和为协议设定更高的标准,供其他国家采用。</p><p>这就是当初我们启动“跨太平洋伙伴关系协定”(简称 TPP)的原因。美国原先参与 TPP 谈判,因为它意识到其中的战略效益,但最终还是退出了。所幸,余下的 11 个成员国继续磋商,并最终保留大部分的内容,形成了目前已生效的“跨太平洋伙伴全面进展协定”(简称CPTPP)。</p><p>好几个国家,包括韩国、泰国和英国都表示有意加入 CPTPP,这让我感到欣慰。中国也正密切关注 CPTPP 的发展。虽然中国目前没有加入的打算,我希望中国有一天会认真考虑加入 CPTPP。同样的,我也希望有朝一日,美国的政治环境能允许美国政府重新考虑美国的立场,并意识到加入 CPTPP 对美国在经济和战略上都有好处。毕竟美国也曾在 TPP(CPTPP 的前身)的筹划过程中扮演重要的角色。</p><p>亚太地区国家目前正努力完成区域全面经济伙伴关系协定(简称RCEP)的谈判。与 CPTPP 不同,RCEP 包括西太平洋区域的主要国家,包括东北亚与东南亚国家,更重要的是,它也纳入了印度,澳大利亚和新西兰。这样的安排将减低 RCEP 被误解为是一个排挤美国和其合作伙伴的集团的风险。由于 RCEP 成员国之间的差异较大,其所设定的目标自然比 CPTPP 低,在磋商的过程中也较难取得共识。尽管如此,我仍希望成员国可以作最后冲刺,在今年内完成 RCEP 的谈判,或者是当主要成员的国内政治局势允许的时候。</p><p>当然,区域合作不仅限于贸易合作。例如,东南亚国家所成立的亚细安就为其十个国情各异的成员国提供了有效的交流与合作平台,加深它们之间的关系,并促进各方和平共处。亚细安已经成为其他国家有效的合作伙伴。作为一个群体,它也让成员国施展更大的影响力。</p><p>亚细安秉持以共识定决策的原则。它在一些事务上进展顺利,另一些则停滞不前,这是因为亚细安成员国面对了来自各方的战略势力的压力。这是我们需要认清的现实,那就是在区域展开合作,就必须面对各种外部的影响。尽管亚细安存在局限,亚细安还是为成员国的福祉和本区域的安全贡献良多,而亚细安的伙伴国也肯定了“亚细安中心论”(ASEAN centrality)的价值。</p><p>随着地缘政治的变化,促成区域合作的新概念和平台也应运而生,最显著的是中国的“一带一路”倡议。新加坡支持“一带一路”,视之为中国积极参与区域和区域以外活动的具有建设性的机制,因此我们也是“一带一路”的积极参与者。例如,我们与世界银行合作,推广金融和基础建设的互联互通,同时也为“一带一路”参与国提供专业和法律服务。新加坡也同中国合作,发展中新(重庆)战略性互联互通示范项目旗下的“国际陆海贸易新通道”,将中国西部与东南亚连接起来。</p><p>当然,“一带一路”倡议的实质内容和落实的方式也很重要。个别项目必须具有商业价值并符合经济效益,同时为合作伙伴带来长期利益。可是,并非每个项目都如此顺利,有些项目工程可谓困难重重。整体而言,“一带一路”必须保持开放和具包容性,不能把整个区域变成一个封闭的联盟,只以一个单一主要经济体为中心。亚洲国家在与中国深化联系的同时,也需要与美国、欧洲、日本和其它国家发展友好关系。换言之,“一带一路”应该帮助中国融入世界。最终的成果必须是加强全球化,而不是导致各方势力处于对立状态。</p><p>我相信中国意识到这点。不久前,中国领导人在北京举行的第二届“一带一路”国际合作高峰论坛上明确表示,“一带一路”将坚持“开放、绿色、廉洁”的理念。财政部长刘昆也表示,中国将成立“一带一路”债务可持续性分析框架,以防范债务风险,这受到国际货币基金组织的欢迎。因此,接下来的考验在于如何实践这些承诺。不过,肯定的是, 他们正朝正确的方向迈进。</p><p>与此同时,有些国家也提出了促进区域合作的其它项目。例如,一些国家就提出各种概念来加强印度 – 太平洋区域合作。比起“一带一路”倡议,这些项目或许还缺少细节,或是还未全面推行,但是新加坡的态度是一以贯之的。我们支持任何开放、具包容性的区域合作项目,因为它们是促进各国有效合作、加深区域一体化的平台。不过,这些项目必须加强而不是破坏以亚细安为中心的现有安排,不应该造成阵营对立、加深矛盾或迫使各国选边站。它们应该团结而不是分化世界。</p><p>中美关系将决定国际关系未来的发展。世界两大强国展开权力、势力之争是很自然的,但竞争不该演变成冲突。我们希望中美两国能找到具建设性的合作模式,在竞争的同时,也在各个重要课题上展开合作,共创双赢。</p><p>基于中美两国截然不同的价值观,有些人认为两国之间不可能、甚至不应该达成协议。一名美国官员最近就把中美博弈形容为“迥然不同的文明和意识形态之间的斗争”。同时,也有人认为美国是个希望被人人效仿的年轻国家;反之、中国则是个自认无法被模仿的古老国家。</p><p>想要世界各国都采纳同样的文化价值观和政治体系不单是强人所难、更是不切实际。事实上,人类的多样性就是它的力量。我们可以从价值观、观点、制度和政策的差异中互相学习。人类能不断进步,就仰赖思想的交流,以及不断地学习和适应。</p><p>美国前国务卿基辛格去年曾表示,世界正处于一个非常非常严峻的时期。没有人能够预测事态的发展。上两个世纪,东南亚在不同时期见证了大国之间的抗争。它经历了战火的蹂躏,和被他人占领所带来的破坏和苦难,并被分成对立的阵营。它也亲眼见证,一个国家或区域如果与世界经济隔绝,都将停滞不前,有时候还会引发冲突。另一些时候,它又受益于国际合作,这种合作创造了一个开放、稳定的环境,让各国能够在和平中繁荣昌盛。</p><p>长远来说,我们不能排除任何可能发生的情况。不过,我们这一代必须共同努力,才能在最大限度上确保每个国家都会以睿智和勇气作出正确的抉择,并支持经济开放和一体化,同时保存以及扩大我们共同取得的进展。</p><p>转载自<a href="http://www.dapenti.com/blog/more.asp?name=xilei&amp;id=140969">喷嚏网</a></p>]]>
    </content>
    <id>https://editst.com/2019/lixianlong/</id>
    <link href="https://editst.com/2019/lixianlong/"/>
    <published>2019-06-02T09:16:03.000Z</published>
    <summary>
      <![CDATA[<p>新加坡总理李显龙出席今年的香格里拉对话（Shangri-La Dialogue），并在开幕晚宴上发表主旨演讲，强调稳定和具建设性的中美关系对区域安全的重要性。</p>
<p>李显龙总理演讲全文如下：</p>
<p>国际战略研究所所长约翰.奇普曼博士阁下</p>
<p>各位阁下</p>
<p>各位嘉宾,女士们、先生们</p>
<p>大家晚上好!</p>
<p>欢迎各位来到新加坡并出席第 18 届香格里拉对话会。</p>
<p>世界正处于一个转折点。全球化受到多方的抨击,美国和中国的关系日益紧张。新加坡和许多其他国家一样,非常担心这样的趋势。我们既不知道形势会如何发展,也不晓得世界各国是否能够携手开辟新的出路,一同维护世界和平与繁荣。</p>]]>
    </summary>
    <title>李显龙在18届香格里拉对话发表主旨演讲</title>
    <updated>2019-06-02T09:16:03.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="游记" scheme="https://editst.com/categories/%E6%B8%B8%E8%AE%B0/"/>
    <category term="广州" scheme="https://editst.com/tags/%E5%B9%BF%E5%B7%9E/"/>
    <category term="深圳" scheme="https://editst.com/tags/%E6%B7%B1%E5%9C%B3/"/>
    <category term="Ingress" scheme="https://editst.com/tags/Ingress/"/>
    <content>
      <![CDATA[<p>趁着早早考完试后难得的间隙，买了票直奔深圳，然后去广州，开始了回家前的避寒之旅。说是广东游记，其实只是简单去了深圳和广州，很惭愧。</p><p>总的来讲深圳给人的印象是中国难得的各方面都很现代化的大都市，无论是硬件设施还是城市文化，都是现代社会应有的样子。可能由于深圳本身历史还短，一切都是那么年轻的感觉，尤其是看到一句宣传语“来了都是深圳人”，虽然是在忽悠人，但仍给人一种和北上广不一样的错觉。不过对于旅游而言，深圳着实不算一个合格的目的地，毕竟这么一座人人上班又没有什么历史积淀的城市，很难找到值得去游玩的地方。后悔没有早办好通行证，错过了澳门的 IFS。</p><p>至于广州，能在不经意间感受那种厚重的历史感，又能感受到因为开放发展带来的现代化，两者交融的感觉复杂又迷人。至于美食，不用多说，每天不停的话也足够吃上几十天。不过作为一线城市，广州的消费和房价也是最一线的，我终归还是一个过客。</p><span id="more"></span><h2 id="深圳">深圳</h2><p>关于在深圳的一天半似乎真的没有什么好说的，做了几套任务，强行约了一下饭，强行刷了几个 upc，然后就踏上了去广州的旅程。不过还是特别感谢扎哥的热情接待和引路，感觉深圳还是没有那么冷漠的。大体放一下拼图吧，都是良心任务。</p><p><img src="shenzhen-banners.jpg" alt=""></p><p>从上到下依次是</p><ul><li><a href="https://ingressmosaik.com/mosaic/16609">戴帽子的小猫咪（深圳北站）</a></li><li><a href="https://ingressmosaik.com/mosaic/10578">Google New Logo（市民广场）</a></li><li><a href="https://ingressmosaik.com/mosaic/29356">City of Tomorrow（欢乐海岸）</a></li><li><a href="https://ingressmosaik.com/mosaic/16610">Eagle Version Onyx Medals（园博园）</a></li><li><a href="https://ingressmosaik.com/mosaic/22360">平衡鹏立于大地之上（水围广场）</a></li></ul><p>最后吐槽一下深圳地铁对交通联合卡的支持十分诡异，同样的闸机有的怎么刷都没反应，然而多刷几个总能有个可以的，难以理解。</p><h2 id="广州">广州</h2><h3 id="吃吃吃">吃吃吃</h3><p>说到广州想到的第一件事应该就是吃了，到了广州的第一个晚上就和诸位大佬约起了饭，甚是感人。下面是当晚的烤鱼，图片来自 @Mowa 大佬。</p><p><img src="canton-food-1.jpg" alt=""></p><p>后面的每一天基本都是在做任务和吃吃吃中度过的，特别是车车来了以后，每天三顿都不止，吃到了各种肠粉和甜品，不过传说中一些奇奇怪怪的东西倒是没有见到，估计是待的时间太短，没有去探索足够奇怪的东西吧。第二天在北京路步行街找到了好吃的肠粉和双皮奶，没有拍照片，偷一张车车的照片放一下。</p><p><img src="canton-food-2.jpg" alt=""></p><p>还一起约了禄运茶居、潮汕牛肉火锅、向群饭店等，请自行从图片中领会，均由车车拍摄。</p><p><img src="canton-food-3.jpg" alt=""><br><img src="canton-food-4.jpg" alt=""><br><img src="canton-food-5.jpg" alt=""></p><h3 id="任务">任务</h3><p>广州任务真的是超级良心，估计也是因为我避开了各种比较大的坑。由于广州的 portal 分布整体较密，而且有明显的集中区域，所以整体来讲做任务体验都不错。下面是周六刷完的三套拼图，都是连接在一起的，需要注意的是自由引导人民需要绕行市政府15圈左右，充分感受自由的空气，强烈建议骑车。然后下午去越秀公园做了五羊雕塑的拼图，做完后开心的发现漏掉了一个，只好第二天去补了一下。</p><p><img src="canton-banners-1.jpg" alt=""></p><p>从上到下依次是</p><ul><li><a href="https://ingressmosaik.com/mosaic/36836">《自由引导人民》在广州（市政府）</a></li><li><a href="https://ingressmosaik.com/mosaic/39124">人民公园飞船基地（人民公园）</a></li><li><a href="https://ingressmosaik.com/mosaic/39486">一定要食倒广州（北京路步行街）</a></li></ul><p>第二天补完五羊雕塑任务后下午去了广东省博物馆，晚上去二沙岛体验了一下富人区顺便做了一套 EVA 的任务。</p><p><img src="canton-banners-2.jpg" alt=""></p><p>从上到下依次是</p><ul><li><a href="https://ingressmosaik.com/mosaic/19896">EVA 18 Angels（二沙岛）</a></li><li><a href="https://ingressmosaik.com/mosaic/12988">越秀公园五羊雕像 Yuexiu Park（越秀公园）</a></li></ul><p>第三天分别去了广州美术学院、红专厂和中山大学，遗憾的是晚上去广州塔时已经太晚，没能上去观赏一下广州夜景，纪念 key 也没有留下。</p><p><img src="canton-banners-3.jpg" alt=""></p><p>从上到下依次是</p><ul><li><a href="https://ingressmosaik.com/mosaic/26666">LIMBO SYSU（中山大学）</a></li><li><a href="https://ingressmosaik.com/mosaic/14602">线描广州（红专厂18个版）</a></li><li><a href="https://ingressmosaik.com/mosaic/21504">墨必斯，Crystal Saga（广州美术学院）</a></li></ul><p>由于时间关系，还有几套喜欢的拼图没有去做，留给下次好了。</p><h3 id="博物馆-美术馆">博物馆&amp;美术馆</h3><p>这次去广州只去了广东省博物馆和广东省美术馆，分别说一下吧。省博到了之后才得知可以预约，节省排队的时间。遗憾的是等我们进去后特展售票已经截止了，而且由于某些原因第四层整体没有开放，因此游览的范围特别小，有一种不是省博的错觉。总体上的展览布置感觉一般，没有太多的地域特色，特别是瓷器展部分。比较有新意的是关于外销扇的展览，放两张照片感受一下。</p><p><img src="canton-museum-1.jpg" alt=""><br><img src="canton-museum-2.jpg" alt=""></p><p>幸运的是在离开前最后一晚得知广州三年展正在举行，次日在广州美术馆开馆前就赶到，匆匆观看了一遍。下面同样挑几个个人印象比较深刻的展品放一下。</p><blockquote><p>在他的作品中，何魏格·威瑟都试图从我们与技术的关系出发，审视我们的思维模式和共同意义。威瑟关注自己在项目中重新塑造和构思的那些数字机械的类似重要性。例如，他曾将一台计算机改装成一个生活有机体，反过来让这“作为”或发展成为一个不可预知且不稳定的系统逻辑。</p><p>作品《消除歧义的召集》包含以下序列：固化与碰撞。在发射时，两条透明的高速相流在碰撞过程中改变了冻结材料—将材料固化为一个扩大的雕塑。在捕捉到冰冻星座碰撞的那一刻之后，可见结构将再次受热融化成纯粹的透明物质。由于事物的短暂可变状态，这件作品可以看作是某种形式的“行动绘画”或某种“等离子”电影。这件雕塑作品通过暴露隐藏的物质重新阐述了其重要意义，作品根据自己的内部原则，通过自动诗意系统自发生成美学与物质的关联。从结构上来说，它是从一种有序状态过渡到无序状态，从熵过渡到负熵，反之亦然。这个项目从根本上揭露了不可能情况下出现的问题。</p></blockquote><p><img src="canton-feedforward-2.jpg" alt=""></p><p>由于这个装置的发射时间是在中午，没能看到，只好从网上找一下展品的照片。</p><blockquote><p>托马斯·费尔施代恩弥合了应用科学和理论科学之间的差距。他的作品中融合了哲学、艺术史和文学以及生物工程学、经济学和政治学等复杂的知识体系。他通过艺术叙事方法研究个人与社会的相互关系，并通过美学的方式深入探讨分子雕塑和变美学。他的作品采用广泛多样的媒介，包括装置、图绘、油画、雕塑、摄影、广播剧、网络艺术和生物艺术。费尔施代恩尤其关注言语、视觉和材料元素之间的交互作用，以及对事实与虚构之间的潜在关联、艺术与科学之间的相互作用的挖掘探索等。他的核心方法被其称之为“观念叙事”。</p><p>《被解放的普罗米修斯》讲述了一个关于在科幻小说和恐惧、乌托邦和反乌托邦之间摇摆不定的故事。这个项目结合了雕塑、绘画和文学元素，同时还有生物化学过程———将人体肝细胞经历培养、发酵，最终蒸馏成酒精。</p><p>作品的中央矗立着一尊《被缚的普罗米修斯》大理石雕型。这尊雕塑正在被自养型细菌缓慢吞噬。这时，无机的石头变成了有机的“食物”。普罗米修斯成了一台将“岩石化学”过渡到“岩石生物学”的变体机器。</p></blockquote><p><img src="canton-feedforward-3.jpg" alt=""></p><h2 id="总结">总结</h2><p>回家后一直在吃了睡睡了吃，过了一周多才慢慢写完这篇简陋的游记。总体时间安排比较紧，考虑到玩这个垃圾游戏浪费了好多时间，没有尽情的逛一逛广州，但也足以产生好感了。最后放一张黄花岗公园的石碑，自由从来都是需要代价的，需要有人付出的。</p><p><img src="canton-freedom.jpg" alt=""></p>]]>
    </content>
    <id>https://editst.com/2019/guangdong-journey/</id>
    <link href="https://editst.com/2019/guangdong-journey/"/>
    <published>2019-01-13T11:56:51.000Z</published>
    <summary>
      <![CDATA[<p>趁着早早考完试后难得的间隙，买了票直奔深圳，然后去广州，开始了回家前的避寒之旅。说是广东游记，其实只是简单去了深圳和广州，很惭愧。</p>
<p>总的来讲深圳给人的印象是中国难得的各方面都很现代化的大都市，无论是硬件设施还是城市文化，都是现代社会应有的样子。可能由于深圳本身历史还短，一切都是那么年轻的感觉，尤其是看到一句宣传语“来了都是深圳人”，虽然是在忽悠人，但仍给人一种和北上广不一样的错觉。不过对于旅游而言，深圳着实不算一个合格的目的地，毕竟这么一座人人上班又没有什么历史积淀的城市，很难找到值得去游玩的地方。后悔没有早办好通行证，错过了澳门的 IFS。</p>
<p>至于广州，能在不经意间感受那种厚重的历史感，又能感受到因为开放发展带来的现代化，两者交融的感觉复杂又迷人。至于美食，不用多说，每天不停的话也足够吃上几十天。不过作为一线城市，广州的消费和房价也是最一线的，我终归还是一个过客。</p>]]>
    </summary>
    <title>广东游记</title>
    <updated>2020-06-14T02:55:13.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="随笔" scheme="https://editst.com/categories/%E9%9A%8F%E7%AC%94/"/>
    <category term="年终总结" scheme="https://editst.com/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/"/>
    <content>
      <![CDATA[<p>又是一年结束，如果说要给今年找一个什么关键词的话，我觉得是再见，今年我们真的告别了太多人，太多事。当然，也有一些想说再见的东西还在，希望能早日说声告别。似乎是为了烘托一下今年的气氛，昨天下了场挺大的雪，气温也降了下来，有新年的感觉了。</p><span id="more"></span><p>晚上刚考完量力，果然还是太菜，回来看逼哥的直播，垃圾网易云又看不了，心情更差了。不过还是写写总结吧，总不能一年过去啥都没留下。</p><p>这一年没怎么出门，但还是有不少值得记录的事情。回看一下二月春节时写的一段话，感觉还是低估了这个世界。</p><blockquote><p>新的一年来了，大家新年快乐！</p><p>元旦没写点什么，补一下</p><p>现在的春节只觉得喧闹无趣，然而能和家人相聚也是幸福的，或许只有这个会成为春年不变的习俗。</p><p>过去的一年，是多事的一年，亲眼见证了魔幻国家里魔幻故事一个接一个地上演，当然，今年开头的故事也只多不少。最想提到的还是INGRESS垃圾游戏，感谢你给我打开了新的世界，认识了这么多优秀的人。</p><p>新的一年，祝愿越来越多的人可以睁眼看世界，愿这个国家可以更加开放包容，不要继续在魔幻的道路上疾驰。别的也没有什么能编的了，每一个看到的人都要开心快乐啊！</p></blockquote><p>现在看来，最后的愿望很明显没有实现，怎么说呢，已经不是魔幻了，向着荒诞的方向越走越远。很明显的是管控越来越严，空间越来越小，自由越来越少。简单的说几个词语吧。</p><ul><li>红黄蓝幼儿园虐童</li><li>修宪</li><li>中兴被美制裁</li><li>#MeToo</li><li>朱军被控性侵</li><li>疫苗</li><li>中美贸易战</li><li>重庆公交坠江</li><li>福泉港碳九泄露</li><li>基因编辑婴儿</li><li>天津权健</li><li>范冰冰逃税</li><li>崔永元与最高法</li></ul><p>很抱歉我就记得这么多了，没有什么条理，最后引用一段话吧。</p><blockquote><p><a href="http://weibo.com/u/2526630955">@经济观察报-书评：</a> 所以当你面对越来越惨烈的社会新闻表达出一种错愕和时空颠倒的距离感时，并不是因为周遭的人太过冷漠与无动于衷。而是当你表达出一点点对于正义育常识的追求时，某种黑暗会迅速吞噬你。然后，要么你变得和他们一样面无表情习以为常，要么你在这团黑暗里冷却了你的心。</p></blockquote><p>有许多话很难说出，希望可以能有更多的人知道这个社会可能不是你看到的样子，睁眼看世界！这个世界会好吗？</p><p>说点愉快的吧，今年印象最深的应该就是简单生活节了，人生第一次参加音乐节，看到了李志、李宗盛、朴树……然后就是薅了一下 GCP 的羊毛，尝试着建了一个网站，写了一点东西。转眼本科就快结束了，自己还一事无成，总要学点什么，计划把 Python 掌握的好一点。</p><p>今年四月份终于把 Ingress 这个垃圾游戏升到了16级，可以名正言顺地咸鱼了。直说吧，总有部分智障能没有人类底线地去恶心别人使自己开心，这个游戏也不例外，很遗憾有很多熟识的玩家因此离开了这个游戏，祝大家可以不被这些东西打扰。</p><p>似乎也没什么更多可以说的了，发现自己确实是一个蛮无趣的人。最后照例祝福每一个人，新的一年要幸福。</p>]]>
    </content>
    <id>https://editst.com/2018/summary-2018/</id>
    <link href="https://editst.com/2018/summary-2018/"/>
    <published>2018-12-31T15:15:51.000Z</published>
    <summary>
      <![CDATA[<p>又是一年结束，如果说要给今年找一个什么关键词的话，我觉得是再见，今年我们真的告别了太多人，太多事。当然，也有一些想说再见的东西还在，希望能早日说声告别。似乎是为了烘托一下今年的气氛，昨天下了场挺大的雪，气温也降了下来，有新年的感觉了。</p>]]>
    </summary>
    <title>2018 回望</title>
    <updated>2021-12-30T15:24:51.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="物理" scheme="https://editst.com/categories/%E7%89%A9%E7%90%86/"/>
    <category term="计算物理" scheme="https://editst.com/tags/%E8%AE%A1%E7%AE%97%E7%89%A9%E7%90%86/"/>
    <category term="Python" scheme="https://editst.com/tags/Python/"/>
    <content>
      <![CDATA[<h2 id="一、摘要">一、摘要</h2><p>本文使用二维伊辛模型进行蒙特卡洛模拟，观察了不同温度下系统平均磁矩随时间的演化关系，并且观察到了温度变化时产生的二级相变现象，证明使用如此简单的模型也可以模拟部分物理学现象。</p><p>之后以伊辛模型为基础，简要实现了一种神经网络，即 Hopefield Neural Network(HNN),可以根据给定的训练集来生成关系矩阵，并可以用来还原加入噪声的信号。</p><span id="more"></span><h2 id="二、原理">二、原理</h2><h3 id="1、二维伊辛模型">1、二维伊辛模型</h3><p>伊辛模型是一个以物理学家恩斯特·伊辛为名的数学模型，用于描述物质的铁磁性。该模型中包含了可以用来描述单个原子磁矩的参数 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.023ex;" xmlns="http://www.w3.org/2000/svg" width="1.061ex" height="1.023ex" role="img" focusable="false" viewBox="0 -442 469 452"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D460" d="M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"></path></g></g></g></svg></mjx-container>，其值只能为+1或-1，分别代表自旋向上或向下，这些磁矩通常会按照某种规则排列，形成晶格，并且在模型中会引入特定交互作用的参数 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="1.432ex" height="1.595ex" role="img" focusable="false" viewBox="0 -683 633 705"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D43D" d="M447 625Q447 637 354 637H329Q323 642 323 645T325 664Q329 677 335 683H352Q393 681 498 681Q541 681 568 681T605 682T619 682Q633 682 633 672Q633 670 630 658Q626 642 623 640T604 637Q552 637 545 623Q541 610 483 376Q420 128 419 127Q397 64 333 21T195 -22Q137 -22 97 8T57 88Q57 130 80 152T132 174Q177 174 182 130Q182 98 164 80T123 56Q115 54 115 53T122 44Q148 15 197 15Q235 15 271 47T324 130Q328 142 387 380T447 625Z"></path></g></g></g></svg></mjx-container>，使得相邻的自旋互相影响。</p><p>我们定义总能量</p><p><mjx-container class="MathJax" jax="SVG" display="true"><svg style="vertical-align: -3.006ex;" xmlns="http://www.w3.org/2000/svg" width="28.062ex" height="5.155ex" role="img" focusable="false" viewBox="0 -950 12403.4 2278.6"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D438" d="M492 213Q472 213 472 226Q472 230 477 250T482 285Q482 316 461 323T364 330H312Q311 328 277 192T243 52Q243 48 254 48T334 46Q428 46 458 48T518 61Q567 77 599 117T670 248Q680 270 683 272Q690 274 698 274Q718 274 718 261Q613 7 608 2Q605 0 322 0H133Q31 0 31 11Q31 13 34 25Q38 41 42 43T65 46Q92 46 125 49Q139 52 144 61Q146 66 215 342T285 622Q285 629 281 629Q273 632 228 634H197Q191 640 191 642T193 659Q197 676 203 680H757Q764 676 764 669Q764 664 751 557T737 447Q735 440 717 440H705Q698 445 698 453L701 476Q704 500 704 528Q704 558 697 578T678 609T643 625T596 632T532 634H485Q397 633 392 631Q388 629 386 622Q385 619 355 499T324 377Q347 376 372 376H398Q464 376 489 391T534 472Q538 488 540 490T557 493Q562 493 565 493T570 492T572 491T574 487T577 483L544 351Q511 218 508 216Q505 213 492 213Z"></path></g><g data-mml-node="mo" transform="translate(1041.8,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mo" transform="translate(2097.6,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="mi" transform="translate(2875.6,0)"><path data-c="1D43D" d="M447 625Q447 637 354 637H329Q323 642 323 645T325 664Q329 677 335 683H352Q393 681 498 681Q541 681 568 681T605 682T619 682Q633 682 633 672Q633 670 630 658Q626 642 623 640T604 637Q552 637 545 623Q541 610 483 376Q420 128 419 127Q397 64 333 21T195 -22Q137 -22 97 8T57 88Q57 130 80 152T132 174Q177 174 182 130Q182 98 164 80T123 56Q115 54 115 53T122 44Q148 15 197 15Q235 15 271 47T324 130Q328 142 387 380T447 625Z"></path></g><g data-mml-node="munder" transform="translate(3675.2,0)"><g data-mml-node="mo" transform="translate(95.8,0)"><path data-c="2211" d="M60 948Q63 950 665 950H1267L1325 815Q1384 677 1388 669H1348L1341 683Q1320 724 1285 761Q1235 809 1174 838T1033 881T882 898T699 902H574H543H251L259 891Q722 258 724 252Q725 250 724 246Q721 243 460 -56L196 -356Q196 -357 407 -357Q459 -357 548 -357T676 -358Q812 -358 896 -353T1063 -332T1204 -283T1307 -196Q1328 -170 1348 -124H1388Q1388 -125 1381 -145T1356 -210T1325 -294L1267 -449L666 -450Q64 -450 61 -448Q55 -446 55 -439Q55 -437 57 -433L590 177Q590 178 557 222T452 366T322 544L56 909L55 924Q55 945 60 948Z"></path></g><g data-mml-node="TeXAtom" transform="translate(0,-1084.4) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mo"><path data-c="3C" d="M694 -11T694 -19T688 -33T678 -40Q671 -40 524 29T234 166L90 235Q83 240 83 250Q83 261 91 266Q664 540 678 540Q681 540 687 534T694 519T687 505Q686 504 417 376L151 250L417 124Q686 -4 687 -5Q694 -11 694 -19Z"></path></g><g data-mml-node="mi" transform="translate(778,0)"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mi" transform="translate(1123,0)"><path data-c="1D457" d="M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z"></path></g><g data-mml-node="mo" transform="translate(1535,0)"><path data-c="3E" d="M84 520Q84 528 88 533T96 539L99 540Q106 540 253 471T544 334L687 265Q694 260 694 250T687 235Q685 233 395 96L107 -40H101Q83 -38 83 -20Q83 -19 83 -17Q82 -10 98 -1Q117 9 248 71Q326 108 378 132L626 250L378 368Q90 504 86 509Q84 513 84 520Z"></path></g></g></g><g data-mml-node="TeXAtom" data-mjx-texclass="ORD" transform="translate(5477.4,0)"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D460" d="M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"></path></g><g data-mml-node="mi" transform="translate(502,-150) scale(0.707)"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g></g><g data-mml-node="msub" transform="translate(796,0)"><g data-mml-node="mi"><path data-c="1D460" d="M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"></path></g><g data-mml-node="TeXAtom" transform="translate(502,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D457" d="M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z"></path></g></g></g></g><g data-mml-node="mo" transform="translate(7338.9,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="mi" transform="translate(8339.2,0)"><path data-c="1D707" d="M58 -216Q44 -216 34 -208T23 -186Q23 -176 96 116T173 414Q186 442 219 442Q231 441 239 435T249 423T251 413Q251 401 220 279T187 142Q185 131 185 107V99Q185 26 252 26Q261 26 270 27T287 31T302 38T315 45T327 55T338 65T348 77T356 88T365 100L372 110L408 253Q444 395 448 404Q461 431 491 431Q504 431 512 424T523 412T525 402L449 84Q448 79 448 68Q448 43 455 35T476 26Q485 27 496 35Q517 55 537 131Q543 151 547 152Q549 153 557 153H561Q580 153 580 144Q580 138 575 117T555 63T523 13Q510 0 491 -8Q483 -10 467 -10Q446 -10 429 -4T402 11T385 29T376 44T374 51L368 45Q362 39 350 30T324 12T288 -4T246 -11Q199 -11 153 12L129 -85Q108 -167 104 -180T92 -202Q76 -216 58 -216Z"></path></g><g data-mml-node="mi" transform="translate(8942.2,0)"><path data-c="1D43B" d="M228 637Q194 637 192 641Q191 643 191 649Q191 673 202 682Q204 683 219 683Q260 681 355 681Q389 681 418 681T463 682T483 682Q499 682 499 672Q499 670 497 658Q492 641 487 638H485Q483 638 480 638T473 638T464 637T455 637Q416 636 405 634T387 623Q384 619 355 500Q348 474 340 442T328 395L324 380Q324 378 469 378H614L615 381Q615 384 646 504Q674 619 674 627T617 637Q594 637 587 639T580 648Q580 650 582 660Q586 677 588 679T604 682Q609 682 646 681T740 680Q802 680 835 681T871 682Q888 682 888 672Q888 645 876 638H874Q872 638 869 638T862 638T853 637T844 637Q805 636 794 634T776 623Q773 618 704 340T634 58Q634 51 638 51Q646 48 692 46H723Q729 38 729 37T726 19Q722 6 716 0H701Q664 2 567 2Q533 2 504 2T458 2T437 1Q420 1 420 10Q420 15 423 24Q428 43 433 45Q437 46 448 46H454Q481 46 514 49Q520 50 522 50T528 55T534 64T540 82T547 110T558 153Q565 181 569 198Q602 330 602 331T457 332H312L279 197Q245 63 245 58Q245 51 253 49T303 46H334Q340 38 340 37T337 19Q333 6 327 0H312Q275 2 178 2Q144 2 115 2T69 2T48 1Q31 1 31 10Q31 12 34 24Q39 43 44 45Q48 46 59 46H65Q92 46 125 49Q139 52 144 61Q147 65 216 339T285 628Q285 635 228 637Z"></path></g><g data-mml-node="munder" transform="translate(9996.8,0)"><g data-mml-node="mo"><path data-c="2211" d="M60 948Q63 950 665 950H1267L1325 815Q1384 677 1388 669H1348L1341 683Q1320 724 1285 761Q1235 809 1174 838T1033 881T882 898T699 902H574H543H251L259 891Q722 258 724 252Q725 250 724 246Q721 243 460 -56L196 -356Q196 -357 407 -357Q459 -357 548 -357T676 -358Q812 -358 896 -353T1063 -332T1204 -283T1307 -196Q1328 -170 1348 -124H1388Q1388 -125 1381 -145T1356 -210T1325 -294L1267 -449L666 -450Q64 -450 61 -448Q55 -446 55 -439Q55 -437 57 -433L590 177Q590 178 557 222T452 366T322 544L56 909L55 924Q55 945 60 948Z"></path></g><g data-mml-node="TeXAtom" transform="translate(600,-1084.4) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g></g></g><g data-mml-node="msub" transform="translate(11607.5,0)"><g data-mml-node="mi"><path data-c="1D460" d="M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"></path></g><g data-mml-node="TeXAtom" transform="translate(502,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g></g></g></g></g></svg></mjx-container></p><p>其中 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: 0;" xmlns="http://www.w3.org/2000/svg" width="2.009ex" height="1.545ex" role="img" focusable="false" viewBox="0 -683 888 683"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D43B" d="M228 637Q194 637 192 641Q191 643 191 649Q191 673 202 682Q204 683 219 683Q260 681 355 681Q389 681 418 681T463 682T483 682Q499 682 499 672Q499 670 497 658Q492 641 487 638H485Q483 638 480 638T473 638T464 637T455 637Q416 636 405 634T387 623Q384 619 355 500Q348 474 340 442T328 395L324 380Q324 378 469 378H614L615 381Q615 384 646 504Q674 619 674 627T617 637Q594 637 587 639T580 648Q580 650 582 660Q586 677 588 679T604 682Q609 682 646 681T740 680Q802 680 835 681T871 682Q888 682 888 672Q888 645 876 638H874Q872 638 869 638T862 638T853 637T844 637Q805 636 794 634T776 623Q773 618 704 340T634 58Q634 51 638 51Q646 48 692 46H723Q729 38 729 37T726 19Q722 6 716 0H701Q664 2 567 2Q533 2 504 2T458 2T437 1Q420 1 420 10Q420 15 423 24Q428 43 433 45Q437 46 448 46H454Q481 46 514 49Q520 50 522 50T528 55T534 64T540 82T547 110T558 153Q565 181 569 198Q602 330 602 331T457 332H312L279 197Q245 63 245 58Q245 51 253 49T303 46H334Q340 38 340 37T337 19Q333 6 327 0H312Q275 2 178 2Q144 2 115 2T69 2T48 1Q31 1 31 10Q31 12 34 24Q39 43 44 45Q48 46 59 46H65Q92 46 125 49Q139 52 144 61Q147 65 216 339T285 628Q285 635 228 637Z"></path></g></g></g></svg></mjx-container> 为外部磁场。和现实情况一样，我们先生成一个随机分布，然后计算翻转所需能量的变化</p><p><mjx-container class="MathJax" jax="SVG" display="true"><svg style="vertical-align: -0.667ex;" xmlns="http://www.w3.org/2000/svg" width="12.208ex" height="2.206ex" role="img" focusable="false" viewBox="0 -680 5395.8 975"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D438" d="M492 213Q472 213 472 226Q472 230 477 250T482 285Q482 316 461 323T364 330H312Q311 328 277 192T243 52Q243 48 254 48T334 46Q428 46 458 48T518 61Q567 77 599 117T670 248Q680 270 683 272Q690 274 698 274Q718 274 718 261Q613 7 608 2Q605 0 322 0H133Q31 0 31 11Q31 13 34 25Q38 41 42 43T65 46Q92 46 125 49Q139 52 144 61Q146 66 215 342T285 622Q285 629 281 629Q273 632 228 634H197Q191 640 191 642T193 659Q197 676 203 680H757Q764 676 764 669Q764 664 751 557T737 447Q735 440 717 440H705Q698 445 698 453L701 476Q704 500 704 528Q704 558 697 578T678 609T643 625T596 632T532 634H485Q397 633 392 631Q388 629 386 622Q385 619 355 499T324 377Q347 376 372 376H398Q464 376 489 391T534 472Q538 488 540 490T557 493Q562 493 565 493T570 492T572 491T574 487T577 483L544 351Q511 218 508 216Q505 213 492 213Z"></path></g><g data-mml-node="TeXAtom" transform="translate(771,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D453" d="M118 -162Q120 -162 124 -164T135 -167T147 -168Q160 -168 171 -155T187 -126Q197 -99 221 27T267 267T289 382V385H242Q195 385 192 387Q188 390 188 397L195 425Q197 430 203 430T250 431Q298 431 298 432Q298 434 307 482T319 540Q356 705 465 705Q502 703 526 683T550 630Q550 594 529 578T487 561Q443 561 443 603Q443 622 454 636T478 657L487 662Q471 668 457 668Q445 668 434 658T419 630Q412 601 403 552T387 469T380 433Q380 431 435 431Q480 431 487 430T498 424Q499 420 496 407T491 391Q489 386 482 386T428 385H372L349 263Q301 15 282 -47Q255 -132 212 -173Q175 -205 139 -205Q107 -205 81 -186T55 -132Q55 -95 76 -78T118 -61Q162 -61 162 -103Q162 -122 151 -136T127 -157L118 -162Z"></path></g><g data-mml-node="mi" transform="translate(550,0)"><path data-c="1D459" d="M117 59Q117 26 142 26Q179 26 205 131Q211 151 215 152Q217 153 225 153H229Q238 153 241 153T246 151T248 144Q247 138 245 128T234 90T214 43T183 6T137 -11Q101 -11 70 11T38 85Q38 97 39 102L104 360Q167 615 167 623Q167 626 166 628T162 632T157 634T149 635T141 636T132 637T122 637Q112 637 109 637T101 638T95 641T94 647Q94 649 96 661Q101 680 107 682T179 688Q194 689 213 690T243 693T254 694Q266 694 266 686Q266 675 193 386T118 83Q118 81 118 75T117 65V59Z"></path></g><g data-mml-node="mi" transform="translate(848,0)"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mi" transform="translate(1193,0)"><path data-c="1D45D" d="M23 287Q24 290 25 295T30 317T40 348T55 381T75 411T101 433T134 442Q209 442 230 378L240 387Q302 442 358 442Q423 442 460 395T497 281Q497 173 421 82T249 -10Q227 -10 210 -4Q199 1 187 11T168 28L161 36Q160 35 139 -51T118 -138Q118 -144 126 -145T163 -148H188Q194 -155 194 -157T191 -175Q188 -187 185 -190T172 -194Q170 -194 161 -194T127 -193T65 -192Q-5 -192 -24 -194H-32Q-39 -187 -39 -183Q-37 -156 -26 -148H-6Q28 -147 33 -136Q36 -130 94 103T155 350Q156 355 156 364Q156 405 131 405Q109 405 94 377T71 316T59 280Q57 278 43 278H29Q23 284 23 287ZM178 102Q200 26 252 26Q282 26 310 49T356 107Q374 141 392 215T411 325V331Q411 405 350 405Q339 405 328 402T306 393T286 380T269 365T254 350T243 336T235 326L232 322Q232 321 229 308T218 264T204 212Q178 106 178 102Z"></path></g></g></g><g data-mml-node="mo" transform="translate(2298,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mo" transform="translate(3353.8,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="mn" transform="translate(4131.8,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g><g data-mml-node="mi" transform="translate(4631.8,0)"><path data-c="1D438" d="M492 213Q472 213 472 226Q472 230 477 250T482 285Q482 316 461 323T364 330H312Q311 328 277 192T243 52Q243 48 254 48T334 46Q428 46 458 48T518 61Q567 77 599 117T670 248Q680 270 683 272Q690 274 698 274Q718 274 718 261Q613 7 608 2Q605 0 322 0H133Q31 0 31 11Q31 13 34 25Q38 41 42 43T65 46Q92 46 125 49Q139 52 144 61Q146 66 215 342T285 622Q285 629 281 629Q273 632 228 634H197Q191 640 191 642T193 659Q197 676 203 680H757Q764 676 764 669Q764 664 751 557T737 447Q735 440 717 440H705Q698 445 698 453L701 476Q704 500 704 528Q704 558 697 578T678 609T643 625T596 632T532 634H485Q397 633 392 631Q388 629 386 622Q385 619 355 499T324 377Q347 376 372 376H398Q464 376 489 391T534 472Q538 488 540 490T557 493Q562 493 565 493T570 492T572 491T574 487T577 483L544 351Q511 218 508 216Q505 213 492 213Z"></path></g></g></g></svg></mjx-container></p><p>当 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.667ex;" xmlns="http://www.w3.org/2000/svg" width="8.719ex" height="2.206ex" role="img" focusable="false" viewBox="0 -680 3853.8 975"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D438" d="M492 213Q472 213 472 226Q472 230 477 250T482 285Q482 316 461 323T364 330H312Q311 328 277 192T243 52Q243 48 254 48T334 46Q428 46 458 48T518 61Q567 77 599 117T670 248Q680 270 683 272Q690 274 698 274Q718 274 718 261Q613 7 608 2Q605 0 322 0H133Q31 0 31 11Q31 13 34 25Q38 41 42 43T65 46Q92 46 125 49Q139 52 144 61Q146 66 215 342T285 622Q285 629 281 629Q273 632 228 634H197Q191 640 191 642T193 659Q197 676 203 680H757Q764 676 764 669Q764 664 751 557T737 447Q735 440 717 440H705Q698 445 698 453L701 476Q704 500 704 528Q704 558 697 578T678 609T643 625T596 632T532 634H485Q397 633 392 631Q388 629 386 622Q385 619 355 499T324 377Q347 376 372 376H398Q464 376 489 391T534 472Q538 488 540 490T557 493Q562 493 565 493T570 492T572 491T574 487T577 483L544 351Q511 218 508 216Q505 213 492 213Z"></path></g><g data-mml-node="TeXAtom" transform="translate(771,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D453" d="M118 -162Q120 -162 124 -164T135 -167T147 -168Q160 -168 171 -155T187 -126Q197 -99 221 27T267 267T289 382V385H242Q195 385 192 387Q188 390 188 397L195 425Q197 430 203 430T250 431Q298 431 298 432Q298 434 307 482T319 540Q356 705 465 705Q502 703 526 683T550 630Q550 594 529 578T487 561Q443 561 443 603Q443 622 454 636T478 657L487 662Q471 668 457 668Q445 668 434 658T419 630Q412 601 403 552T387 469T380 433Q380 431 435 431Q480 431 487 430T498 424Q499 420 496 407T491 391Q489 386 482 386T428 385H372L349 263Q301 15 282 -47Q255 -132 212 -173Q175 -205 139 -205Q107 -205 81 -186T55 -132Q55 -95 76 -78T118 -61Q162 -61 162 -103Q162 -122 151 -136T127 -157L118 -162Z"></path></g><g data-mml-node="mi" transform="translate(550,0)"><path data-c="1D459" d="M117 59Q117 26 142 26Q179 26 205 131Q211 151 215 152Q217 153 225 153H229Q238 153 241 153T246 151T248 144Q247 138 245 128T234 90T214 43T183 6T137 -11Q101 -11 70 11T38 85Q38 97 39 102L104 360Q167 615 167 623Q167 626 166 628T162 632T157 634T149 635T141 636T132 637T122 637Q112 637 109 637T101 638T95 641T94 647Q94 649 96 661Q101 680 107 682T179 688Q194 689 213 690T243 693T254 694Q266 694 266 686Q266 675 193 386T118 83Q118 81 118 75T117 65V59Z"></path></g><g data-mml-node="mi" transform="translate(848,0)"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mi" transform="translate(1193,0)"><path data-c="1D45D" d="M23 287Q24 290 25 295T30 317T40 348T55 381T75 411T101 433T134 442Q209 442 230 378L240 387Q302 442 358 442Q423 442 460 395T497 281Q497 173 421 82T249 -10Q227 -10 210 -4Q199 1 187 11T168 28L161 36Q160 35 139 -51T118 -138Q118 -144 126 -145T163 -148H188Q194 -155 194 -157T191 -175Q188 -187 185 -190T172 -194Q170 -194 161 -194T127 -193T65 -192Q-5 -192 -24 -194H-32Q-39 -187 -39 -183Q-37 -156 -26 -148H-6Q28 -147 33 -136Q36 -130 94 103T155 350Q156 355 156 364Q156 405 131 405Q109 405 94 377T71 316T59 280Q57 278 43 278H29Q23 284 23 287ZM178 102Q200 26 252 26Q282 26 310 49T356 107Q374 141 392 215T411 325V331Q411 405 350 405Q339 405 328 402T306 393T286 380T269 365T254 350T243 336T235 326L232 322Q232 321 229 308T218 264T204 212Q178 106 178 102Z"></path></g></g></g><g data-mml-node="mo" transform="translate(2298,0)"><path data-c="3C" d="M694 -11T694 -19T688 -33T678 -40Q671 -40 524 29T234 166L90 235Q83 240 83 250Q83 261 91 266Q664 540 678 540Q681 540 687 534T694 519T687 505Q686 504 417 376L151 250L417 124Q686 -4 687 -5Q694 -11 694 -19Z"></path></g><g data-mml-node="mn" transform="translate(3353.8,0)"><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path></g></g></g></svg></mjx-container>，反转自旋；</p><p>当<mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.667ex;" xmlns="http://www.w3.org/2000/svg" width="8.719ex" height="2.206ex" role="img" focusable="false" viewBox="0 -680 3853.8 975"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D438" d="M492 213Q472 213 472 226Q472 230 477 250T482 285Q482 316 461 323T364 330H312Q311 328 277 192T243 52Q243 48 254 48T334 46Q428 46 458 48T518 61Q567 77 599 117T670 248Q680 270 683 272Q690 274 698 274Q718 274 718 261Q613 7 608 2Q605 0 322 0H133Q31 0 31 11Q31 13 34 25Q38 41 42 43T65 46Q92 46 125 49Q139 52 144 61Q146 66 215 342T285 622Q285 629 281 629Q273 632 228 634H197Q191 640 191 642T193 659Q197 676 203 680H757Q764 676 764 669Q764 664 751 557T737 447Q735 440 717 440H705Q698 445 698 453L701 476Q704 500 704 528Q704 558 697 578T678 609T643 625T596 632T532 634H485Q397 633 392 631Q388 629 386 622Q385 619 355 499T324 377Q347 376 372 376H398Q464 376 489 391T534 472Q538 488 540 490T557 493Q562 493 565 493T570 492T572 491T574 487T577 483L544 351Q511 218 508 216Q505 213 492 213Z"></path></g><g data-mml-node="TeXAtom" transform="translate(771,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D453" d="M118 -162Q120 -162 124 -164T135 -167T147 -168Q160 -168 171 -155T187 -126Q197 -99 221 27T267 267T289 382V385H242Q195 385 192 387Q188 390 188 397L195 425Q197 430 203 430T250 431Q298 431 298 432Q298 434 307 482T319 540Q356 705 465 705Q502 703 526 683T550 630Q550 594 529 578T487 561Q443 561 443 603Q443 622 454 636T478 657L487 662Q471 668 457 668Q445 668 434 658T419 630Q412 601 403 552T387 469T380 433Q380 431 435 431Q480 431 487 430T498 424Q499 420 496 407T491 391Q489 386 482 386T428 385H372L349 263Q301 15 282 -47Q255 -132 212 -173Q175 -205 139 -205Q107 -205 81 -186T55 -132Q55 -95 76 -78T118 -61Q162 -61 162 -103Q162 -122 151 -136T127 -157L118 -162Z"></path></g><g data-mml-node="mi" transform="translate(550,0)"><path data-c="1D459" d="M117 59Q117 26 142 26Q179 26 205 131Q211 151 215 152Q217 153 225 153H229Q238 153 241 153T246 151T248 144Q247 138 245 128T234 90T214 43T183 6T137 -11Q101 -11 70 11T38 85Q38 97 39 102L104 360Q167 615 167 623Q167 626 166 628T162 632T157 634T149 635T141 636T132 637T122 637Q112 637 109 637T101 638T95 641T94 647Q94 649 96 661Q101 680 107 682T179 688Q194 689 213 690T243 693T254 694Q266 694 266 686Q266 675 193 386T118 83Q118 81 118 75T117 65V59Z"></path></g><g data-mml-node="mi" transform="translate(848,0)"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mi" transform="translate(1193,0)"><path data-c="1D45D" d="M23 287Q24 290 25 295T30 317T40 348T55 381T75 411T101 433T134 442Q209 442 230 378L240 387Q302 442 358 442Q423 442 460 395T497 281Q497 173 421 82T249 -10Q227 -10 210 -4Q199 1 187 11T168 28L161 36Q160 35 139 -51T118 -138Q118 -144 126 -145T163 -148H188Q194 -155 194 -157T191 -175Q188 -187 185 -190T172 -194Q170 -194 161 -194T127 -193T65 -192Q-5 -192 -24 -194H-32Q-39 -187 -39 -183Q-37 -156 -26 -148H-6Q28 -147 33 -136Q36 -130 94 103T155 350Q156 355 156 364Q156 405 131 405Q109 405 94 377T71 316T59 280Q57 278 43 278H29Q23 284 23 287ZM178 102Q200 26 252 26Q282 26 310 49T356 107Q374 141 392 215T411 325V331Q411 405 350 405Q339 405 328 402T306 393T286 380T269 365T254 350T243 336T235 326L232 322Q232 321 229 308T218 264T204 212Q178 106 178 102Z"></path></g></g></g><g data-mml-node="mo" transform="translate(2298,0)"><path data-c="3E" d="M84 520Q84 528 88 533T96 539L99 540Q106 540 253 471T544 334L687 265Q694 260 694 250T687 235Q685 233 395 96L107 -40H101Q83 -38 83 -20Q83 -19 83 -17Q82 -10 98 -1Q117 9 248 71Q326 108 378 132L626 250L378 368Q90 504 86 509Q84 513 84 520Z"></path></g><g data-mml-node="mn" transform="translate(3353.8,0)"><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path></g></g></g></svg></mjx-container>，利用玻尔兹曼分布计算概率 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.667ex;" xmlns="http://www.w3.org/2000/svg" width="21.037ex" height="2.364ex" role="img" focusable="false" viewBox="0 -750 9298.5 1045"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D45D" d="M23 287Q24 290 25 295T30 317T40 348T55 381T75 411T101 433T134 442Q209 442 230 378L240 387Q302 442 358 442Q423 442 460 395T497 281Q497 173 421 82T249 -10Q227 -10 210 -4Q199 1 187 11T168 28L161 36Q160 35 139 -51T118 -138Q118 -144 126 -145T163 -148H188Q194 -155 194 -157T191 -175Q188 -187 185 -190T172 -194Q170 -194 161 -194T127 -193T65 -192Q-5 -192 -24 -194H-32Q-39 -187 -39 -183Q-37 -156 -26 -148H-6Q28 -147 33 -136Q36 -130 94 103T155 350Q156 355 156 364Q156 405 131 405Q109 405 94 377T71 316T59 280Q57 278 43 278H29Q23 284 23 287ZM178 102Q200 26 252 26Q282 26 310 49T356 107Q374 141 392 215T411 325V331Q411 405 350 405Q339 405 328 402T306 393T286 380T269 365T254 350T243 336T235 326L232 322Q232 321 229 308T218 264T204 212Q178 106 178 102Z"></path></g><g data-mml-node="mo" transform="translate(780.8,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mi" transform="translate(1836.6,0)"><path data-c="1D452" d="M39 168Q39 225 58 272T107 350T174 402T244 433T307 442H310Q355 442 388 420T421 355Q421 265 310 237Q261 224 176 223Q139 223 138 221Q138 219 132 186T125 128Q125 81 146 54T209 26T302 45T394 111Q403 121 406 121Q410 121 419 112T429 98T420 82T390 55T344 24T281 -1T205 -11Q126 -11 83 42T39 168ZM373 353Q367 405 305 405Q272 405 244 391T199 357T170 316T154 280T149 261Q149 260 169 260Q282 260 327 284T373 353Z"></path></g><g data-mml-node="mi" transform="translate(2302.6,0)"><path data-c="1D465" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path></g><g data-mml-node="mi" transform="translate(2874.6,0)"><path data-c="1D45D" d="M23 287Q24 290 25 295T30 317T40 348T55 381T75 411T101 433T134 442Q209 442 230 378L240 387Q302 442 358 442Q423 442 460 395T497 281Q497 173 421 82T249 -10Q227 -10 210 -4Q199 1 187 11T168 28L161 36Q160 35 139 -51T118 -138Q118 -144 126 -145T163 -148H188Q194 -155 194 -157T191 -175Q188 -187 185 -190T172 -194Q170 -194 161 -194T127 -193T65 -192Q-5 -192 -24 -194H-32Q-39 -187 -39 -183Q-37 -156 -26 -148H-6Q28 -147 33 -136Q36 -130 94 103T155 350Q156 355 156 364Q156 405 131 405Q109 405 94 377T71 316T59 280Q57 278 43 278H29Q23 284 23 287ZM178 102Q200 26 252 26Q282 26 310 49T356 107Q374 141 392 215T411 325V331Q411 405 350 405Q339 405 328 402T306 393T286 380T269 365T254 350T243 336T235 326L232 322Q232 321 229 308T218 264T204 212Q178 106 178 102Z"></path></g><g data-mml-node="mo" transform="translate(3377.6,0)"><path data-c="28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path></g><g data-mml-node="mo" transform="translate(3766.6,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="msub" transform="translate(4544.6,0)"><g data-mml-node="mi"><path data-c="1D438" d="M492 213Q472 213 472 226Q472 230 477 250T482 285Q482 316 461 323T364 330H312Q311 328 277 192T243 52Q243 48 254 48T334 46Q428 46 458 48T518 61Q567 77 599 117T670 248Q680 270 683 272Q690 274 698 274Q718 274 718 261Q613 7 608 2Q605 0 322 0H133Q31 0 31 11Q31 13 34 25Q38 41 42 43T65 46Q92 46 125 49Q139 52 144 61Q146 66 215 342T285 622Q285 629 281 629Q273 632 228 634H197Q191 640 191 642T193 659Q197 676 203 680H757Q764 676 764 669Q764 664 751 557T737 447Q735 440 717 440H705Q698 445 698 453L701 476Q704 500 704 528Q704 558 697 578T678 609T643 625T596 632T532 634H485Q397 633 392 631Q388 629 386 622Q385 619 355 499T324 377Q347 376 372 376H398Q464 376 489 391T534 472Q538 488 540 490T557 493Q562 493 565 493T570 492T572 491T574 487T577 483L544 351Q511 218 508 216Q505 213 492 213Z"></path></g><g data-mml-node="TeXAtom" transform="translate(771,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D453" d="M118 -162Q120 -162 124 -164T135 -167T147 -168Q160 -168 171 -155T187 -126Q197 -99 221 27T267 267T289 382V385H242Q195 385 192 387Q188 390 188 397L195 425Q197 430 203 430T250 431Q298 431 298 432Q298 434 307 482T319 540Q356 705 465 705Q502 703 526 683T550 630Q550 594 529 578T487 561Q443 561 443 603Q443 622 454 636T478 657L487 662Q471 668 457 668Q445 668 434 658T419 630Q412 601 403 552T387 469T380 433Q380 431 435 431Q480 431 487 430T498 424Q499 420 496 407T491 391Q489 386 482 386T428 385H372L349 263Q301 15 282 -47Q255 -132 212 -173Q175 -205 139 -205Q107 -205 81 -186T55 -132Q55 -95 76 -78T118 -61Q162 -61 162 -103Q162 -122 151 -136T127 -157L118 -162Z"></path></g><g data-mml-node="mi" transform="translate(550,0)"><path data-c="1D459" d="M117 59Q117 26 142 26Q179 26 205 131Q211 151 215 152Q217 153 225 153H229Q238 153 241 153T246 151T248 144Q247 138 245 128T234 90T214 43T183 6T137 -11Q101 -11 70 11T38 85Q38 97 39 102L104 360Q167 615 167 623Q167 626 166 628T162 632T157 634T149 635T141 636T132 637T122 637Q112 637 109 637T101 638T95 641T94 647Q94 649 96 661Q101 680 107 682T179 688Q194 689 213 690T243 693T254 694Q266 694 266 686Q266 675 193 386T118 83Q118 81 118 75T117 65V59Z"></path></g><g data-mml-node="mi" transform="translate(848,0)"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mi" transform="translate(1193,0)"><path data-c="1D45D" d="M23 287Q24 290 25 295T30 317T40 348T55 381T75 411T101 433T134 442Q209 442 230 378L240 387Q302 442 358 442Q423 442 460 395T497 281Q497 173 421 82T249 -10Q227 -10 210 -4Q199 1 187 11T168 28L161 36Q160 35 139 -51T118 -138Q118 -144 126 -145T163 -148H188Q194 -155 194 -157T191 -175Q188 -187 185 -190T172 -194Q170 -194 161 -194T127 -193T65 -192Q-5 -192 -24 -194H-32Q-39 -187 -39 -183Q-37 -156 -26 -148H-6Q28 -147 33 -136Q36 -130 94 103T155 350Q156 355 156 364Q156 405 131 405Q109 405 94 377T71 316T59 280Q57 278 43 278H29Q23 284 23 287ZM178 102Q200 26 252 26Q282 26 310 49T356 107Q374 141 392 215T411 325V331Q411 405 350 405Q339 405 328 402T306 393T286 380T269 365T254 350T243 336T235 326L232 322Q232 321 229 308T218 264T204 212Q178 106 178 102Z"></path></g></g></g><g data-mml-node="TeXAtom" data-mjx-texclass="ORD" transform="translate(6564.8,0)"><g data-mml-node="mo"><path data-c="2F" d="M423 750Q432 750 438 744T444 730Q444 725 271 248T92 -240Q85 -250 75 -250Q68 -250 62 -245T56 -231Q56 -221 230 257T407 740Q411 750 423 750Z"></path></g></g><g data-mml-node="msub" transform="translate(7064.8,0)"><g data-mml-node="mi"><path data-c="1D458" d="M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"></path></g><g data-mml-node="mi" transform="translate(554,-150) scale(0.707)"><path data-c="1D435" d="M231 637Q204 637 199 638T194 649Q194 676 205 682Q206 683 335 683Q594 683 608 681Q671 671 713 636T756 544Q756 480 698 429T565 360L555 357Q619 348 660 311T702 219Q702 146 630 78T453 1Q446 0 242 0Q42 0 39 2Q35 5 35 10Q35 17 37 24Q42 43 47 45Q51 46 62 46H68Q95 46 128 49Q142 52 147 61Q150 65 219 339T288 628Q288 635 231 637ZM649 544Q649 574 634 600T585 634Q578 636 493 637Q473 637 451 637T416 636H403Q388 635 384 626Q382 622 352 506Q352 503 351 500L320 374H401Q482 374 494 376Q554 386 601 434T649 544ZM595 229Q595 273 572 302T512 336Q506 337 429 337Q311 337 310 336Q310 334 293 263T258 122L240 52Q240 48 252 48T333 46Q422 46 429 47Q491 54 543 105T595 229Z"></path></g></g><g data-mml-node="mi" transform="translate(8205.5,0)"><path data-c="1D447" d="M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z"></path></g><g data-mml-node="mo" transform="translate(8909.5,0)"><path data-c="29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></g></g></g></svg></mjx-container> ，并生成一个随机数来决定是否反转自旋。</p><p>这样随着循环次数的增加，系统总会趋向于一个能量最低的地方，至于是局部最低还是全局最低则取决于温度和外磁场，可以使用平均场理论进行粗略的计算。</p><p>二维伊辛模型有一个相变点，临界温度 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.357ex;" xmlns="http://www.w3.org/2000/svg" width="2.202ex" height="1.889ex" role="img" focusable="false" viewBox="0 -677 973.2 834.8"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D447" d="M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z"></path></g><g data-mml-node="mi" transform="translate(617,-150) scale(0.707)"><path data-c="1D450" d="M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z"></path></g></g></g></g></svg></mjx-container> 满足以下方程：</p><p><mjx-container class="MathJax" jax="SVG" display="true"><svg style="vertical-align: -1.909ex;" xmlns="http://www.w3.org/2000/svg" width="12.938ex" height="4.984ex" role="img" focusable="false" viewBox="0 -1359 5718.4 2202.8"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="73" d="M295 316Q295 356 268 385T190 414Q154 414 128 401Q98 382 98 349Q97 344 98 336T114 312T157 287Q175 282 201 278T245 269T277 256Q294 248 310 236T342 195T359 133Q359 71 321 31T198 -10H190Q138 -10 94 26L86 19L77 10Q71 4 65 -1L54 -11H46H42Q39 -11 33 -5V74V132Q33 153 35 157T45 162H54Q66 162 70 158T75 146T82 119T101 77Q136 26 198 26Q295 26 295 104Q295 133 277 151Q257 175 194 187T111 210Q75 227 54 256T33 318Q33 357 50 384T93 424T143 442T187 447H198Q238 447 268 432L283 424L292 431Q302 440 314 448H322H326Q329 448 335 442V310L329 304H301Q295 310 295 316Z"></path><path data-c="69" d="M69 609Q69 637 87 653T131 669Q154 667 171 652T188 609Q188 579 171 564T129 549Q104 549 87 564T69 609ZM247 0Q232 3 143 3Q132 3 106 3T56 1L34 0H26V46H42Q70 46 91 49Q100 53 102 60T104 102V205V293Q104 345 102 359T88 378Q74 385 41 385H30V408Q30 431 32 431L42 432Q52 433 70 434T106 436Q123 437 142 438T171 441T182 442H185V62Q190 52 197 50T232 46H255V0H247Z" transform="translate(394,0)"></path><path data-c="6E" d="M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q450 438 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z" transform="translate(672,0)"></path><path data-c="68" d="M41 46H55Q94 46 102 60V68Q102 77 102 91T102 124T102 167T103 217T103 272T103 329Q103 366 103 407T103 482T102 542T102 586T102 603Q99 622 88 628T43 637H25V660Q25 683 27 683L37 684Q47 685 66 686T103 688Q120 689 140 690T170 693T181 694H184V367Q244 442 328 442Q451 442 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z" transform="translate(1228,0)"></path></g><g data-mml-node="mo" transform="translate(1784,0)"><path data-c="2061" d=""></path></g><g data-mml-node="TeXAtom" data-mjx-texclass="ORD" transform="translate(1950.7,0)"><g data-mml-node="mfrac"><g data-mml-node="mrow" transform="translate(400.6,676)"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g><g data-mml-node="mi" transform="translate(500,0)"><path data-c="1D43D" d="M447 625Q447 637 354 637H329Q323 642 323 645T325 664Q329 677 335 683H352Q393 681 498 681Q541 681 568 681T605 682T619 682Q633 682 633 672Q633 670 630 658Q626 642 623 640T604 637Q552 637 545 623Q541 610 483 376Q420 128 419 127Q397 64 333 21T195 -22Q137 -22 97 8T57 88Q57 130 80 152T132 174Q177 174 182 130Q182 98 164 80T123 56Q115 54 115 53T122 44Q148 15 197 15Q235 15 271 47T324 130Q328 142 387 380T447 625Z"></path></g></g><g data-mml-node="mrow" transform="translate(220,-686)"><g data-mml-node="mi"><path data-c="1D458" d="M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"></path></g><g data-mml-node="msub" transform="translate(521,0)"><g data-mml-node="mi"><path data-c="1D447" d="M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z"></path></g><g data-mml-node="mi" transform="translate(617,-150) scale(0.707)"><path data-c="1D450" d="M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z"></path></g></g></g><rect width="1694.2" height="60" x="120" y="220"></rect></g></g><g data-mml-node="mo" transform="translate(4162.6,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mn" transform="translate(5218.4,0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path></g></g></g></svg></mjx-container></p><p>为模拟方便，这里我们取 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.566ex;" xmlns="http://www.w3.org/2000/svg" width="7.89ex" height="2.262ex" role="img" focusable="false" viewBox="0 -750 3487.6 1000"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D43D" d="M447 625Q447 637 354 637H329Q323 642 323 645T325 664Q329 677 335 683H352Q393 681 498 681Q541 681 568 681T605 682T619 682Q633 682 633 672Q633 670 630 658Q626 642 623 640T604 637Q552 637 545 623Q541 610 483 376Q420 128 419 127Q397 64 333 21T195 -22Q137 -22 97 8T57 88Q57 130 80 152T132 174Q177 174 182 130Q182 98 164 80T123 56Q115 54 115 53T122 44Q148 15 197 15Q235 15 271 47T324 130Q328 142 387 380T447 625Z"></path></g><g data-mml-node="TeXAtom" data-mjx-texclass="ORD" transform="translate(633,0)"><g data-mml-node="mo"><path data-c="2F" d="M423 750Q432 750 438 744T444 730Q444 725 271 248T92 -240Q85 -250 75 -250Q68 -250 62 -245T56 -231Q56 -221 230 257T407 740Q411 750 423 750Z"></path></g></g><g data-mml-node="mi" transform="translate(1133,0)"><path data-c="1D458" d="M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"></path></g><g data-mml-node="mo" transform="translate(1931.8,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mn" transform="translate(2987.6,0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path></g></g></g></svg></mjx-container>，则有</p><p><mjx-container class="MathJax" jax="SVG" display="true"><svg style="vertical-align: -2.648ex;" xmlns="http://www.w3.org/2000/svg" width="24.99ex" height="5.684ex" role="img" focusable="false" viewBox="0 -1342 11045.7 2512.5"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D447" d="M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z"></path></g><g data-mml-node="mi" transform="translate(617,-150) scale(0.707)"><path data-c="1D450" d="M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z"></path></g></g><g data-mml-node="mo" transform="translate(1251,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mfrac" transform="translate(2306.7,0)"><g data-mml-node="mn" transform="translate(2313.7,676)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g><g data-mml-node="mrow" transform="translate(220,-920.5)"><g data-mml-node="mi"><path data-c="6C" d="M42 46H56Q95 46 103 60V68Q103 77 103 91T103 124T104 167T104 217T104 272T104 329Q104 366 104 407T104 482T104 542T103 586T103 603Q100 622 89 628T44 637H26V660Q26 683 28 683L38 684Q48 685 67 686T104 688Q121 689 141 690T171 693T182 694H185V379Q185 62 186 60Q190 52 198 49Q219 46 247 46H263V0H255L232 1Q209 2 183 2T145 3T107 3T57 1L34 0H26V46H42Z"></path><path data-c="6E" d="M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q450 438 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z" transform="translate(278,0)"></path></g><g data-mml-node="mo" transform="translate(834,0)"><path data-c="2061" d=""></path></g><g data-mml-node="mo" transform="translate(834,0)"><path data-c="28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path></g><g data-mml-node="mn" transform="translate(1223,0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path></g><g data-mml-node="mo" transform="translate(1945.2,0)"><path data-c="2B" d="M56 237T56 250T70 270H369V420L370 570Q380 583 389 583Q402 583 409 568V270H707Q722 262 722 250T707 230H409V-68Q401 -82 391 -82H389H387Q375 -82 369 -68V230H70Q56 237 56 250Z"></path></g><g data-mml-node="TeXAtom" data-mjx-texclass="ORD" transform="translate(2945.4,0)"><g data-mml-node="msqrt"><g transform="translate(853,0)"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g><g data-mml-node="mo" transform="translate(0,100.5)"><path data-c="221A" d="M95 178Q89 178 81 186T72 200T103 230T169 280T207 309Q209 311 212 311H213Q219 311 227 294T281 177Q300 134 312 108L397 -77Q398 -77 501 136T707 565T814 786Q820 800 834 800Q841 800 846 794T853 782V776L620 293L385 -193Q381 -200 366 -200Q357 -200 354 -197Q352 -195 256 15L160 225L144 214Q129 202 113 190T95 178Z"></path></g><rect width="500" height="60" x="853" y="840.5"></rect></g><g data-mml-node="mo" transform="translate(1353,0)"><path data-c="29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></g></g></g><rect width="4887.4" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(7712,0)"><path data-c="2248" d="M55 319Q55 360 72 393T114 444T163 472T205 482Q207 482 213 482T223 483Q262 483 296 468T393 413L443 381Q502 346 553 346Q609 346 649 375T694 454Q694 465 698 474T708 483Q722 483 722 452Q722 386 675 338T555 289Q514 289 468 310T388 357T308 404T224 426Q164 426 125 393T83 318Q81 289 69 289Q55 289 55 319ZM55 85Q55 126 72 159T114 210T163 238T205 248Q207 248 213 248T223 249Q262 249 296 234T393 179L443 147Q502 112 553 112Q609 112 649 141T694 220Q694 249 708 249T722 217Q722 153 675 104T555 55Q514 55 468 76T388 123T308 170T224 192Q164 192 125 159T83 84Q80 55 69 55Q55 55 55 85Z"></path></g><g data-mml-node="mn" transform="translate(8767.7,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" transform="translate(778,0)"></path><path data-c="36" d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z" transform="translate(1278,0)"></path><path data-c="39" d="M352 287Q304 211 232 211Q154 211 104 270T44 396Q42 412 42 436V444Q42 537 111 606Q171 666 243 666Q245 666 249 666T257 665H261Q273 665 286 663T323 651T370 619T413 560Q456 472 456 334Q456 194 396 97Q361 41 312 10T208 -22Q147 -22 108 7T68 93T121 149Q143 149 158 135T173 96Q173 78 164 65T148 49T135 44L131 43Q131 41 138 37T164 27T206 22H212Q272 22 313 86Q352 142 352 280V287ZM244 248Q292 248 321 297T351 430Q351 508 343 542Q341 552 337 562T323 588T293 615T246 625Q208 625 181 598Q160 576 154 546T147 441Q147 358 152 329T172 282Q197 248 244 248Z" transform="translate(1778,0)"></path></g></g></g></svg></mjx-container></p><h3 id="2、HNN">2、HNN</h3><p>大脑中的神经网络可以看作是无数神经元节点相互连接，相互影响所形成的。因此我们可以利用与之类似的伊辛模型来进行模拟，只是这里的相互作用参数不再是一个定值，而是变为一个 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: 0;" xmlns="http://www.w3.org/2000/svg" width="9.005ex" height="1.887ex" role="img" focusable="false" viewBox="0 -833.9 3980.1 833.9"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msup"><g data-mml-node="mi"><path data-c="1D441" d="M234 637Q231 637 226 637Q201 637 196 638T191 649Q191 676 202 682Q204 683 299 683Q376 683 387 683T401 677Q612 181 616 168L670 381Q723 592 723 606Q723 633 659 637Q635 637 635 648Q635 650 637 660Q641 676 643 679T653 683Q656 683 684 682T767 680Q817 680 843 681T873 682Q888 682 888 672Q888 650 880 642Q878 637 858 637Q787 633 769 597L620 7Q618 0 599 0Q585 0 582 2Q579 5 453 305L326 604L261 344Q196 88 196 79Q201 46 268 46H278Q284 41 284 38T282 19Q278 6 272 0H259Q228 2 151 2Q123 2 100 2T63 2T46 1Q31 1 31 10Q31 14 34 26T39 40Q41 46 62 46Q130 49 150 85Q154 91 221 362L289 634Q287 635 234 637Z"></path></g><g data-mml-node="mn" transform="translate(975.3,363) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g><g data-mml-node="mo" transform="translate(1601,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z"></path></g><g data-mml-node="msup" transform="translate(2601.2,0)"><g data-mml-node="mi"><path data-c="1D441" d="M234 637Q231 637 226 637Q201 637 196 638T191 649Q191 676 202 682Q204 683 299 683Q376 683 387 683T401 677Q612 181 616 168L670 381Q723 592 723 606Q723 633 659 637Q635 637 635 648Q635 650 637 660Q641 676 643 679T653 683Q656 683 684 682T767 680Q817 680 843 681T873 682Q888 682 888 672Q888 650 880 642Q878 637 858 637Q787 633 769 597L620 7Q618 0 599 0Q585 0 582 2Q579 5 453 305L326 604L261 344Q196 88 196 79Q201 46 268 46H278Q284 41 284 38T282 19Q278 6 272 0H259Q228 2 151 2Q123 2 100 2T63 2T46 1Q31 1 31 10Q31 14 34 26T39 40Q41 46 62 46Q130 49 150 85Q154 91 221 362L289 634Q287 635 234 637Z"></path></g><g data-mml-node="mn" transform="translate(975.3,363) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g></g></svg></mjx-container> 的矩阵。因此整个系统的总能量可以表示为</p><p><mjx-container class="MathJax" jax="SVG" display="true"><svg style="vertical-align: -3.006ex;" xmlns="http://www.w3.org/2000/svg" width="16.89ex" height="5.155ex" role="img" focusable="false" viewBox="0 -950 7465.4 2278.6"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D438" d="M492 213Q472 213 472 226Q472 230 477 250T482 285Q482 316 461 323T364 330H312Q311 328 277 192T243 52Q243 48 254 48T334 46Q428 46 458 48T518 61Q567 77 599 117T670 248Q680 270 683 272Q690 274 698 274Q718 274 718 261Q613 7 608 2Q605 0 322 0H133Q31 0 31 11Q31 13 34 25Q38 41 42 43T65 46Q92 46 125 49Q139 52 144 61Q146 66 215 342T285 622Q285 629 281 629Q273 632 228 634H197Q191 640 191 642T193 659Q197 676 203 680H757Q764 676 764 669Q764 664 751 557T737 447Q735 440 717 440H705Q698 445 698 453L701 476Q704 500 704 528Q704 558 697 578T678 609T643 625T596 632T532 634H485Q397 633 392 631Q388 629 386 622Q385 619 355 499T324 377Q347 376 372 376H398Q464 376 489 391T534 472Q538 488 540 490T557 493Q562 493 565 493T570 492T572 491T574 487T577 483L544 351Q511 218 508 216Q505 213 492 213Z"></path></g><g data-mml-node="mo" transform="translate(1041.8,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mo" transform="translate(2097.6,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="munder" transform="translate(3042.2,0)"><g data-mml-node="mo"><path data-c="2211" d="M60 948Q63 950 665 950H1267L1325 815Q1384 677 1388 669H1348L1341 683Q1320 724 1285 761Q1235 809 1174 838T1033 881T882 898T699 902H574H543H251L259 891Q722 258 724 252Q725 250 724 246Q721 243 460 -56L196 -356Q196 -357 407 -357Q459 -357 548 -357T676 -358Q812 -358 896 -353T1063 -332T1204 -283T1307 -196Q1328 -170 1348 -124H1388Q1388 -125 1381 -145T1356 -210T1325 -294L1267 -449L666 -450Q64 -450 61 -448Q55 -446 55 -439Q55 -437 57 -433L590 177Q590 178 557 222T452 366T322 544L56 909L55 924Q55 945 60 948Z"></path></g><g data-mml-node="TeXAtom" transform="translate(356.1,-1084.4) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mo" transform="translate(345,0)"><path data-c="2C" d="M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"></path></g><g data-mml-node="mi" transform="translate(623,0)"><path data-c="1D457" d="M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z"></path></g></g></g><g data-mml-node="TeXAtom" data-mjx-texclass="ORD" transform="translate(4652.9,0)"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D43D" d="M447 625Q447 637 354 637H329Q323 642 323 645T325 664Q329 677 335 683H352Q393 681 498 681Q541 681 568 681T605 682T619 682Q633 682 633 672Q633 670 630 658Q626 642 623 640T604 637Q552 637 545 623Q541 610 483 376Q420 128 419 127Q397 64 333 21T195 -22Q137 -22 97 8T57 88Q57 130 80 152T132 174Q177 174 182 130Q182 98 164 80T123 56Q115 54 115 53T122 44Q148 15 197 15Q235 15 271 47T324 130Q328 142 387 380T447 625Z"></path></g><g data-mml-node="TeXAtom" transform="translate(588,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mi" transform="translate(345,0)"><path data-c="1D457" d="M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z"></path></g></g></g><g data-mml-node="msub" transform="translate(1173.3,0)"><g data-mml-node="mi"><path data-c="1D460" d="M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"></path></g><g data-mml-node="mi" transform="translate(502,-150) scale(0.707)"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g></g><g data-mml-node="msub" transform="translate(1969.2,0)"><g data-mml-node="mi"><path data-c="1D460" d="M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"></path></g><g data-mml-node="mi" transform="translate(502,-150) scale(0.707)"><path data-c="1D457" d="M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z"></path></g></g></g></g></g></svg></mjx-container></p><p>对于给定的输入，要使系统能量最低，相互作用参数为</p><p><mjx-container class="MathJax" jax="SVG" display="true"><svg style="vertical-align: -2.619ex;" xmlns="http://www.w3.org/2000/svg" width="24.713ex" height="5.656ex" role="img" focusable="false" viewBox="0 -1342 10923 2499.8"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D43D" d="M447 625Q447 637 354 637H329Q323 642 323 645T325 664Q329 677 335 683H352Q393 681 498 681Q541 681 568 681T605 682T619 682Q633 682 633 672Q633 670 630 658Q626 642 623 640T604 637Q552 637 545 623Q541 610 483 376Q420 128 419 127Q397 64 333 21T195 -22Q137 -22 97 8T57 88Q57 130 80 152T132 174Q177 174 182 130Q182 98 164 80T123 56Q115 54 115 53T122 44Q148 15 197 15Q235 15 271 47T324 130Q328 142 387 380T447 625Z"></path></g><g data-mml-node="TeXAtom" transform="translate(588,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mo" transform="translate(345,0)"><path data-c="2C" d="M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"></path></g><g data-mml-node="mi" transform="translate(623,0)"><path data-c="1D457" d="M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z"></path></g></g></g><g data-mml-node="mo" transform="translate(1647.6,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mfrac" transform="translate(2703.4,0)"><g data-mml-node="mn" transform="translate(495.5,676)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path></g><g data-mml-node="mi" transform="translate(220,-686)"><path data-c="1D440" d="M289 629Q289 635 232 637Q208 637 201 638T194 648Q194 649 196 659Q197 662 198 666T199 671T201 676T203 679T207 681T212 683T220 683T232 684Q238 684 262 684T307 683Q386 683 398 683T414 678Q415 674 451 396L487 117L510 154Q534 190 574 254T662 394Q837 673 839 675Q840 676 842 678T846 681L852 683H948Q965 683 988 683T1017 684Q1051 684 1051 673Q1051 668 1048 656T1045 643Q1041 637 1008 637Q968 636 957 634T939 623Q936 618 867 340T797 59Q797 55 798 54T805 50T822 48T855 46H886Q892 37 892 35Q892 19 885 5Q880 0 869 0Q864 0 828 1T736 2Q675 2 644 2T609 1Q592 1 592 11Q592 13 594 25Q598 41 602 43T625 46Q652 46 685 49Q699 52 704 61Q706 65 742 207T813 490T848 631L654 322Q458 10 453 5Q451 4 449 3Q444 0 433 0Q418 0 415 7Q413 11 374 317L335 624L267 354Q200 88 200 79Q206 46 272 46H282Q288 41 289 37T286 19Q282 3 278 1Q274 0 267 0Q265 0 255 0T221 1T157 2Q127 2 95 1T58 0Q43 0 39 2T35 11Q35 13 38 25T43 40Q45 46 65 46Q135 46 154 86Q158 92 223 354T289 629Z"></path></g><rect width="1251" height="60" x="120" y="220"></rect></g><g data-mml-node="munder" transform="translate(4361.1,0)"><g data-mml-node="mo"><path data-c="2211" d="M60 948Q63 950 665 950H1267L1325 815Q1384 677 1388 669H1348L1341 683Q1320 724 1285 761Q1235 809 1174 838T1033 881T882 898T699 902H574H543H251L259 891Q722 258 724 252Q725 250 724 246Q721 243 460 -56L196 -356Q196 -357 407 -357Q459 -357 548 -357T676 -358Q812 -358 896 -353T1063 -332T1204 -283T1307 -196Q1328 -170 1348 -124H1388Q1388 -125 1381 -145T1356 -210T1325 -294L1267 -449L666 -450Q64 -450 61 -448Q55 -446 55 -439Q55 -437 57 -433L590 177Q590 178 557 222T452 366T322 544L56 909L55 924Q55 945 60 948Z"></path></g><g data-mml-node="mi" transform="translate(411.6,-1050) scale(0.707)"><path data-c="1D45A" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g><g data-mml-node="msub" transform="translate(5971.7,0)"><g data-mml-node="mi"><path data-c="1D460" d="M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"></path></g><g data-mml-node="mi" transform="translate(502,-150) scale(0.707)"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g></g><g data-mml-node="mo" transform="translate(6767.7,0)"><path data-c="28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path></g><g data-mml-node="mi" transform="translate(7156.7,0)"><path data-c="1D45A" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mo" transform="translate(8034.7,0)"><path data-c="29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></g><g data-mml-node="msub" transform="translate(8423.7,0)"><g data-mml-node="mi"><path data-c="1D460" d="M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"></path></g><g data-mml-node="mi" transform="translate(502,-150) scale(0.707)"><path data-c="1D457" d="M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z"></path></g></g><g data-mml-node="mo" transform="translate(9267,0)"><path data-c="28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path></g><g data-mml-node="mi" transform="translate(9656,0)"><path data-c="1D45A" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mo" transform="translate(10534,0)"><path data-c="29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></g></g></g></svg></mjx-container></p><p>一旦生成了该矩阵，我们就可以对新的输入进行计算，从而使用与 1 中类似的方法得到系统能量最低的状态，也就是经过 HNN 处理后的输出信号。</p><p>由于该模型比较简陋，因此在训练时对于相近的输入区分度不是很好，而且会有存储上限（<mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="8.42ex" height="1.595ex" role="img" focusable="false" viewBox="0 -683 3721.8 705"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mo"><path data-c="223C" d="M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z"></path></g><g data-mml-node="mn" transform="translate(1055.8,0)"><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" transform="translate(778,0)"></path><path data-c="33" d="M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z" transform="translate(1278,0)"></path></g><g data-mml-node="mi" transform="translate(2833.8,0)"><path data-c="1D441" d="M234 637Q231 637 226 637Q201 637 196 638T191 649Q191 676 202 682Q204 683 299 683Q376 683 387 683T401 677Q612 181 616 168L670 381Q723 592 723 606Q723 633 659 637Q635 637 635 648Q635 650 637 660Q641 676 643 679T653 683Q656 683 684 682T767 680Q817 680 843 681T873 682Q888 682 888 672Q888 650 880 642Q878 637 858 637Q787 633 769 597L620 7Q618 0 599 0Q585 0 582 2Q579 5 453 305L326 604L261 344Q196 88 196 79Q201 46 268 46H278Q284 41 284 38T282 19Q278 6 272 0H259Q228 2 151 2Q123 2 100 2T63 2T46 1Q31 1 31 10Q31 14 34 26T39 40Q41 46 62 46Q130 49 150 85Q154 91 221 362L289 634Q287 635 234 637Z"></path></g></g></g></svg></mjx-container>）。</p><h2 id="三、模拟">三、模拟</h2><h3 id="1、二维伊辛模型-2">1、二维伊辛模型</h3><p>下面的代码默认采用 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="7.291ex" height="1.557ex" role="img" focusable="false" viewBox="0 -666 3222.4 688"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(500,0)"></path></g><g data-mml-node="mo" transform="translate(1222.2,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z"></path></g><g data-mml-node="mn" transform="translate(2222.4,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(500,0)"></path></g></g></g></svg></mjx-container> 的二维格子进行模拟。首先展示了外部磁场为0时，在不同温度下平均磁矩的变化情况。</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line"><span class="keyword">import</span> numpy <span class="keyword">as</span> np</span><br><span class="line"><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> plt</span><br><span class="line"></span><br><span class="line"><span class="keyword">class</span> <span class="title class_">ising</span>(<span class="title class_ inherited__">object</span>):</span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">__init__</span>(<span class="params">self, lenth = <span class="number">20</span>,temperature = <span class="number">1</span>, total_time = <span class="number">1000</span></span>):</span><br><span class="line">        self.l = lenth</span><br><span class="line">        self.T = temperature</span><br><span class="line">        self.t = total_time</span><br><span class="line">        self.lattice = np.random.choice((<span class="number">1</span>,-<span class="number">1</span>), (self.l, self.l))  <span class="comment"># 随机生成初始格点</span></span><br><span class="line">        self.magnet = [np.<span class="built_in">sum</span>(self.lattice) / (self.l ** <span class="number">2</span>)]</span><br><span class="line"></span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">energy</span>(<span class="params">self, i, j</span>):</span><br><span class="line">        <span class="comment"># 使用周期边界条件，超出边界时即为0</span></span><br><span class="line">        neighbors = self.lattice[i][(j+<span class="number">1</span>) % (self.l)] + self.lattice[i][(j-<span class="number">1</span>) % (self.l)] + self.lattice[(i+<span class="number">1</span>) % self.l][j] + self.lattice[(i-<span class="number">1</span>) % self.l][j]</span><br><span class="line">        <span class="keyword">return</span> <span class="number">2</span> * self.lattice[i][j] * neighbors</span><br><span class="line"></span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">run</span>(<span class="params">self</span>):</span><br><span class="line">        <span class="keyword">for</span> t <span class="keyword">in</span> <span class="built_in">range</span>(<span class="number">1</span>, self.t):</span><br><span class="line">            <span class="keyword">for</span> i <span class="keyword">in</span> <span class="built_in">range</span>(self.l):</span><br><span class="line">                <span class="keyword">for</span> j <span class="keyword">in</span> <span class="built_in">range</span>(self.l):</span><br><span class="line">                    energy = self.energy(i, j)</span><br><span class="line">                    <span class="keyword">if</span> energy &lt;= <span class="number">0</span>:</span><br><span class="line">                        self.lattice[i][j] *= -<span class="number">1</span></span><br><span class="line">                    <span class="keyword">elif</span> np.random.random() &lt; np.exp(-energy / self.T):</span><br><span class="line">                        self.lattice[i][j] *= -<span class="number">1</span></span><br><span class="line">            mag = np.<span class="built_in">sum</span>(self.lattice) / (self.l ** <span class="number">2</span>)</span><br><span class="line">            self.magnet.append(mag)</span><br><span class="line"></span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">show</span>(<span class="params">self</span>):</span><br><span class="line">        plt.title(<span class="string">'Magnetization versus Time  T = %s'</span>% self.T)</span><br><span class="line">        plt.xlabel(<span class="string">'Time'</span>)</span><br><span class="line">        plt.ylabel(<span class="string">'Magnetization'</span>)</span><br><span class="line">        plt.ylim((-<span class="number">1.2</span>, <span class="number">1.2</span>))</span><br><span class="line">        plt.plot(<span class="built_in">range</span>(self.t), self.magnet)</span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> __name__ == <span class="string">'__main__'</span>:</span><br><span class="line">    k = <span class="number">221</span></span><br><span class="line">    plt.figure(figsize = (<span class="number">12</span>, <span class="number">12</span>), dpi = <span class="number">80</span>)</span><br><span class="line">    <span class="keyword">for</span> i <span class="keyword">in</span> (<span class="number">1</span>, <span class="number">2</span>, <span class="number">2.27</span>, <span class="number">4</span>):</span><br><span class="line">        a = ising(temperature = i)</span><br><span class="line">        a.run()</span><br><span class="line">        plt.subplot(k)</span><br><span class="line">        a.show()</span><br><span class="line">        k += <span class="number">1</span></span><br><span class="line">    plt.show()</span><br></pre></td></tr></table></figure><p><img src="final-1.png" alt=""></p><p>可以看到，当 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.357ex;" xmlns="http://www.w3.org/2000/svg" width="6.812ex" height="1.889ex" role="img" focusable="false" viewBox="0 -677 3010.7 834.8"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D447" d="M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z"></path></g><g data-mml-node="mo" transform="translate(981.8,0)"><path data-c="3C" d="M694 -11T694 -19T688 -33T678 -40Q671 -40 524 29T234 166L90 235Q83 240 83 250Q83 261 91 266Q664 540 678 540Q681 540 687 534T694 519T687 505Q686 504 417 376L151 250L417 124Q686 -4 687 -5Q694 -11 694 -19Z"></path></g><g data-mml-node="msub" transform="translate(2037.6,0)"><g data-mml-node="mi"><path data-c="1D447" d="M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z"></path></g><g data-mml-node="mi" transform="translate(617,-150) scale(0.707)"><path data-c="1D450" d="M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z"></path></g></g></g></g></svg></mjx-container> 时，会产生自发的极化现象，也即整个系统会变为有序相。而这个变化是随机的，整个系统的自旋会随机趋向于某一个状态，这是系统表现为铁磁性。</p><p>当 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.357ex;" xmlns="http://www.w3.org/2000/svg" width="6.812ex" height="1.889ex" role="img" focusable="false" viewBox="0 -677 3010.7 834.8"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D447" d="M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z"></path></g><g data-mml-node="mo" transform="translate(981.8,0)"><path data-c="2248" d="M55 319Q55 360 72 393T114 444T163 472T205 482Q207 482 213 482T223 483Q262 483 296 468T393 413L443 381Q502 346 553 346Q609 346 649 375T694 454Q694 465 698 474T708 483Q722 483 722 452Q722 386 675 338T555 289Q514 289 468 310T388 357T308 404T224 426Q164 426 125 393T83 318Q81 289 69 289Q55 289 55 319ZM55 85Q55 126 72 159T114 210T163 238T205 248Q207 248 213 248T223 249Q262 249 296 234T393 179L443 147Q502 112 553 112Q609 112 649 141T694 220Q694 249 708 249T722 217Q722 153 675 104T555 55Q514 55 468 76T388 123T308 170T224 192Q164 192 125 159T83 84Q80 55 69 55Q55 55 55 85Z"></path></g><g data-mml-node="msub" transform="translate(2037.6,0)"><g data-mml-node="mi"><path data-c="1D447" d="M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z"></path></g><g data-mml-node="mi" transform="translate(617,-150) scale(0.707)"><path data-c="1D450" d="M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z"></path></g></g></g></g></svg></mjx-container> 时，系统会在两个状态之间随机变化。</p><p>而当 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.357ex;" xmlns="http://www.w3.org/2000/svg" width="6.812ex" height="1.889ex" role="img" focusable="false" viewBox="0 -677 3010.7 834.8"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D447" d="M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z"></path></g><g data-mml-node="mo" transform="translate(981.8,0)"><path data-c="3E" d="M84 520Q84 528 88 533T96 539L99 540Q106 540 253 471T544 334L687 265Q694 260 694 250T687 235Q685 233 395 96L107 -40H101Q83 -38 83 -20Q83 -19 83 -17Q82 -10 98 -1Q117 9 248 71Q326 108 378 132L626 250L378 368Q90 504 86 509Q84 513 84 520Z"></path></g><g data-mml-node="msub" transform="translate(2037.6,0)"><g data-mml-node="mi"><path data-c="1D447" d="M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z"></path></g><g data-mml-node="mi" transform="translate(617,-150) scale(0.707)"><path data-c="1D450" d="M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z"></path></g></g></g></g></svg></mjx-container> 时，系统变为无序的状态，即磁性消失，平均磁场在零附近涨落。</p><p>这种有磁性、无磁性两相之间的转变，是一种连续相变，即二级相变。</p><p>下面我们绘制系统的平均磁矩随温度变化的图像，可以更直观的反应这种二级相变。</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">mag = []</span><br><span class="line"><span class="keyword">for</span> i <span class="keyword">in</span> np.arange(<span class="number">0.1</span>, <span class="number">5</span>, <span class="number">0.1</span>):</span><br><span class="line">    a = ising(temperature = i, total_time = <span class="number">1000</span>, lenth = <span class="number">10</span>)</span><br><span class="line">    a.run()</span><br><span class="line">    mag.append(np.mean(np.<span class="built_in">abs</span>(a.magnet)))</span><br><span class="line"></span><br><span class="line">plt.figure(figsize = (<span class="number">10</span>, <span class="number">10</span>), dpi = <span class="number">80</span>)</span><br><span class="line">plt.plot(np.arange(<span class="number">0.1</span>, <span class="number">5</span>, <span class="number">0.1</span>), mag, <span class="string">'o'</span>, markersize = <span class="number">3</span>)</span><br><span class="line">plt.grid(<span class="literal">True</span>)</span><br><span class="line">plt.title(<span class="string">'Magnetization versus Temperature'</span>)</span><br><span class="line">plt.xlabel(<span class="string">'Temperature'</span>)</span><br><span class="line">plt.ylabel(<span class="string">'Magnetization'</span>)</span><br><span class="line">plt.ylim((<span class="number">0</span>, <span class="number">1</span>))</span><br><span class="line">plt.show()</span><br></pre></td></tr></table></figure><p><img src="final-2.png" alt=""></p><p>可以很明显的发现在 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.09ex;" xmlns="http://www.w3.org/2000/svg" width="9.889ex" height="1.622ex" role="img" focusable="false" viewBox="0 -677 4371.1 717"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g><g data-mml-node="mo" transform="translate(777.8,0)"><path data-c="3C" d="M694 -11T694 -19T688 -33T678 -40Q671 -40 524 29T234 166L90 235Q83 240 83 250Q83 261 91 266Q664 540 678 540Q681 540 687 534T694 519T687 505Q686 504 417 376L151 250L417 124Q686 -4 687 -5Q694 -11 694 -19Z"></path></g><g data-mml-node="mi" transform="translate(1833.6,0)"><path data-c="1D447" d="M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z"></path></g><g data-mml-node="mo" transform="translate(2815.3,0)"><path data-c="3C" d="M694 -11T694 -19T688 -33T678 -40Q671 -40 524 29T234 166L90 235Q83 240 83 250Q83 261 91 266Q664 540 678 540Q681 540 687 534T694 519T687 505Q686 504 417 376L151 250L417 124Q686 -4 687 -5Q694 -11 694 -19Z"></path></g><g data-mml-node="mn" transform="translate(3871.1,0)"><path data-c="33" d="M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z"></path></g></g></g></svg></mjx-container> 区间内，系统的平均磁矩会由 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: 0;" xmlns="http://www.w3.org/2000/svg" width="1.131ex" height="1.507ex" role="img" focusable="false" viewBox="0 -666 500 666"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path></g></g></g></svg></mjx-container> 逐渐趋近于 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="1.131ex" height="1.557ex" role="img" focusable="false" viewBox="0 -666 500 688"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path></g></g></g></svg></mjx-container>，但是变化过程是连续平滑的，因此称之为二级相变。</p><h3 id="2、HNN-2">2、HNN</h3><p>这部分的模拟中使用了<a href="http://yann.lecun.com/exdb/mnist/">MNIST</a>手写数字数据为基础，其格式为 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="7.291ex" height="1.557ex" role="img" focusable="false" viewBox="0 -666 3222.4 688"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path><path data-c="38" d="M70 417T70 494T124 618T248 666Q319 666 374 624T429 515Q429 485 418 459T392 417T361 389T335 371T324 363L338 354Q352 344 366 334T382 323Q457 264 457 174Q457 95 399 37T249 -22Q159 -22 101 29T43 155Q43 263 172 335L154 348Q133 361 127 368Q70 417 70 494ZM286 386L292 390Q298 394 301 396T311 403T323 413T334 425T345 438T355 454T364 471T369 491T371 513Q371 556 342 586T275 624Q268 625 242 625Q201 625 165 599T128 534Q128 511 141 492T167 463T217 431Q224 426 228 424L286 386ZM250 21Q308 21 350 55T392 137Q392 154 387 169T375 194T353 216T330 234T301 253T274 270Q260 279 244 289T218 306L210 311Q204 311 181 294T133 239T107 157Q107 98 150 60T250 21Z" transform="translate(500,0)"></path></g><g data-mml-node="mo" transform="translate(1222.2,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z"></path></g><g data-mml-node="mn" transform="translate(2222.4,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path><path data-c="38" d="M70 417T70 494T124 618T248 666Q319 666 374 624T429 515Q429 485 418 459T392 417T361 389T335 371T324 363L338 354Q352 344 366 334T382 323Q457 264 457 174Q457 95 399 37T249 -22Q159 -22 101 29T43 155Q43 263 172 335L154 348Q133 361 127 368Q70 417 70 494ZM286 386L292 390Q298 394 301 396T311 403T323 413T334 425T345 438T355 454T364 471T369 491T371 513Q371 556 342 586T275 624Q268 625 242 625Q201 625 165 599T128 534Q128 511 141 492T167 463T217 431Q224 426 228 424L286 386ZM250 21Q308 21 350 55T392 137Q392 154 387 169T375 194T353 216T330 234T301 253T274 270Q260 279 244 289T218 306L210 311Q204 311 181 294T133 239T107 157Q107 98 150 60T250 21Z" transform="translate(500,0)"></path></g></g></g></svg></mjx-container> 的数值矩阵，总计784个像素值。</p><p>我从数据集中提取了0-9十个数字并转化为 npy 文件，为了满足输入的要求，将其进行了二值化处理。由于模型限制，只采用了三个数字进行输入得到关系矩阵，简单测试了生成的神经网络对于信号的还原功能。</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> numpy <span class="keyword">as</span> np</span><br><span class="line"><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> plt</span><br><span class="line"></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">train</span>(<span class="params">train_data</span>):</span><br><span class="line">    J = np.zeros((<span class="number">784</span>, <span class="number">784</span>))</span><br><span class="line">    <span class="keyword">for</span> s <span class="keyword">in</span> train_data:</span><br><span class="line">        J += np.outer(s, s)</span><br><span class="line">    <span class="keyword">return</span> J / <span class="number">3</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">recall</span>(<span class="params">J, test_in, steps = <span class="number">5</span></span>):</span><br><span class="line">    sgn = np.vectorize(<span class="keyword">lambda</span> x: -<span class="number">1</span> <span class="keyword">if</span> x&lt;<span class="number">0</span> <span class="keyword">else</span> +<span class="number">1</span>)</span><br><span class="line">    <span class="keyword">for</span> i <span class="keyword">in</span> <span class="built_in">range</span>(steps):</span><br><span class="line">        test_out = sgn(np.dot(test_in, J))</span><br><span class="line">    <span class="keyword">return</span> test_out</span><br><span class="line"></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">destroy</span>(<span class="params">J, possible</span>):</span><br><span class="line"></span><br><span class="line">    <span class="keyword">for</span> i <span class="keyword">in</span> <span class="built_in">range</span>(<span class="number">784</span>):</span><br><span class="line">        <span class="keyword">for</span> j <span class="keyword">in</span> <span class="built_in">range</span>(<span class="number">784</span>):</span><br><span class="line">            <span class="keyword">if</span> np.random.rand() &lt; possible:</span><br><span class="line">                J[i][j] = <span class="number">0</span></span><br><span class="line">    <span class="keyword">return</span> J</span><br><span class="line"></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">test</span>(<span class="params">J, test_data, steps = <span class="number">5</span></span>):</span><br><span class="line">    plt.figure(figsize = (<span class="number">8</span>,<span class="number">12</span>), dpi = <span class="number">80</span>)</span><br><span class="line">    k = <span class="number">321</span></span><br><span class="line">    <span class="keyword">for</span> n <span class="keyword">in</span> test_data:</span><br><span class="line">        test_noise = n + np.random.binomial(<span class="number">2</span>, <span class="number">0.4</span>, <span class="number">784</span>) <span class="comment"># 随机引入噪声信号</span></span><br><span class="line">        new = recall(J, test_noise, steps) <span class="comment"># 经过 HNN 处理后</span></span><br><span class="line">        plt.subplot(k)</span><br><span class="line">        plt.title(<span class="string">'Image with Noise'</span>)</span><br><span class="line">        plt.imshow(test_noise.reshape(<span class="number">28</span>, <span class="number">28</span>), cmap = <span class="string">'gray'</span>)</span><br><span class="line">        k += <span class="number">1</span></span><br><span class="line">        plt.subplot(k)</span><br><span class="line">        plt.title(<span class="string">'Image after HNN'</span>)</span><br><span class="line">        plt.imshow(new.reshape(<span class="number">28</span>, <span class="number">28</span>), cmap = <span class="string">'gray'</span>)</span><br><span class="line">        k += <span class="number">1</span></span><br><span class="line">    plt.show()</span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> __name__ == <span class="string">'__main__'</span>:</span><br><span class="line">    train_data = np.load(<span class="string">'./asset/nor_train.npy'</span>)[[<span class="number">0</span>, <span class="number">2</span>, <span class="number">7</span>]] <span class="comment"># 仅使用 0，2，7三个数字进行测试</span></span><br><span class="line">    J = train(train_data)</span><br><span class="line">    plt.figure(figsize = (<span class="number">8</span>,<span class="number">8</span>), dpi = <span class="number">80</span>)</span><br><span class="line">    plt.title(<span class="string">'Image of J'</span>)</span><br><span class="line">    plt.imshow(J.reshape(<span class="number">784</span>, <span class="number">784</span>), cmap = <span class="string">'gray'</span>)</span><br><span class="line">    plt.show()</span><br><span class="line">    test(J, train_data)</span><br></pre></td></tr></table></figure><p><img src="final-3.png" alt=""></p><p><img src="final-4.png" alt=""></p><p>下面验证一下 HNN 的抗干扰能力，首先随机将 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="1.432ex" height="1.595ex" role="img" focusable="false" viewBox="0 -683 633 705"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D43D" d="M447 625Q447 637 354 637H329Q323 642 323 645T325 664Q329 677 335 683H352Q393 681 498 681Q541 681 568 681T605 682T619 682Q633 682 633 672Q633 670 630 658Q626 642 623 640T604 637Q552 637 545 623Q541 610 483 376Q420 128 419 127Q397 64 333 21T195 -22Q137 -22 97 8T57 88Q57 130 80 152T132 174Q177 174 182 130Q182 98 164 80T123 56Q115 54 115 53T122 44Q148 15 197 15Q235 15 271 47T324 130Q328 142 387 380T447 625Z"></path></g></g></g></svg></mjx-container> 矩阵中 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="2.262ex" height="1.557ex" role="img" focusable="false" viewBox="0 -666 1000 688"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="38" d="M70 417T70 494T124 618T248 666Q319 666 374 624T429 515Q429 485 418 459T392 417T361 389T335 371T324 363L338 354Q352 344 366 334T382 323Q457 264 457 174Q457 95 399 37T249 -22Q159 -22 101 29T43 155Q43 263 172 335L154 348Q133 361 127 368Q70 417 70 494ZM286 386L292 390Q298 394 301 396T311 403T323 413T334 425T345 438T355 454T364 471T369 491T371 513Q371 556 342 586T275 624Q268 625 242 625Q201 625 165 599T128 534Q128 511 141 492T167 463T217 431Q224 426 228 424L286 386ZM250 21Q308 21 350 55T392 137Q392 154 387 169T375 194T353 216T330 234T301 253T274 270Q260 279 244 289T218 306L210 311Q204 311 181 294T133 239T107 157Q107 98 150 60T250 21Z"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(500,0)"></path></g></g></g></svg></mjx-container> 的内容变为0，测试其性能。</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">J = train(train_data)</span><br><span class="line">J = destroy(J, <span class="number">0.8</span>)</span><br><span class="line">plt.figure(figsize = (<span class="number">8</span>,<span class="number">8</span>), dpi = <span class="number">80</span>)</span><br><span class="line">plt.title(<span class="string">'Image of J with 80% 0'</span>)</span><br><span class="line">plt.imshow(J.reshape(<span class="number">784</span>, <span class="number">784</span>), cmap = <span class="string">'gray'</span>)</span><br><span class="line">plt.show()</span><br><span class="line">test(J, train_data, <span class="number">30</span>)</span><br></pre></td></tr></table></figure><p><img src="final-5.png" alt=""></p><p><img src="final-6.png" alt=""></p><p>可以看到即使关系矩阵绝大部分信息消失，剩余部分仍然可以较好的还原输入的信号，说明 HNN 抗干扰能力还是很不错的。</p><p>下面分别测试 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="2.262ex" height="1.557ex" role="img" focusable="false" viewBox="0 -666 1000 688"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="39" d="M352 287Q304 211 232 211Q154 211 104 270T44 396Q42 412 42 436V444Q42 537 111 606Q171 666 243 666Q245 666 249 666T257 665H261Q273 665 286 663T323 651T370 619T413 560Q456 472 456 334Q456 194 396 97Q361 41 312 10T208 -22Q147 -22 108 7T68 93T121 149Q143 149 158 135T173 96Q173 78 164 65T148 49T135 44L131 43Q131 41 138 37T164 27T206 22H212Q272 22 313 86Q352 142 352 280V287ZM244 248Q292 248 321 297T351 430Q351 508 343 542Q341 552 337 562T323 588T293 615T246 625Q208 625 181 598Q160 576 154 546T147 441Q147 358 152 329T172 282Q197 248 244 248Z"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(500,0)"></path></g></g></g></svg></mjx-container> 和 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="2.262ex" height="1.557ex" role="img" focusable="false" viewBox="0 -666 1000 688"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="39" d="M352 287Q304 211 232 211Q154 211 104 270T44 396Q42 412 42 436V444Q42 537 111 606Q171 666 243 666Q245 666 249 666T257 665H261Q273 665 286 663T323 651T370 619T413 560Q456 472 456 334Q456 194 396 97Q361 41 312 10T208 -22Q147 -22 108 7T68 93T121 149Q143 149 158 135T173 96Q173 78 164 65T148 49T135 44L131 43Q131 41 138 37T164 27T206 22H212Q272 22 313 86Q352 142 352 280V287ZM244 248Q292 248 321 297T351 430Q351 508 343 542Q341 552 337 562T323 588T293 615T246 625Q208 625 181 598Q160 576 154 546T147 441Q147 358 152 329T172 282Q197 248 244 248Z"></path><path data-c="35" d="M164 157Q164 133 148 117T109 101H102Q148 22 224 22Q294 22 326 82Q345 115 345 210Q345 313 318 349Q292 382 260 382H254Q176 382 136 314Q132 307 129 306T114 304Q97 304 95 310Q93 314 93 485V614Q93 664 98 664Q100 666 102 666Q103 666 123 658T178 642T253 634Q324 634 389 662Q397 666 402 666Q410 666 410 648V635Q328 538 205 538Q174 538 149 544L139 546V374Q158 388 169 396T205 412T256 420Q337 420 393 355T449 201Q449 109 385 44T229 -22Q148 -22 99 32T50 154Q50 178 61 192T84 210T107 214Q132 214 148 197T164 157Z" transform="translate(500,0)"></path></g></g></g></svg></mjx-container> 损坏比例下的性能。</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">J = train(train_data)</span><br><span class="line">J = destroy(J, <span class="number">0.90</span>)</span><br><span class="line">plt.figure(figsize = (<span class="number">8</span>,<span class="number">8</span>), dpi = <span class="number">80</span>)</span><br><span class="line">plt.title(<span class="string">'Image of J with 90% 0'</span>)</span><br><span class="line">plt.imshow(J.reshape(<span class="number">784</span>, <span class="number">784</span>), cmap = <span class="string">'gray'</span>)</span><br><span class="line">plt.show()</span><br><span class="line">test(J, train_data, <span class="number">20</span>)</span><br><span class="line"></span><br><span class="line">J = train(train_data)</span><br><span class="line">J = destroy(J, <span class="number">0.95</span>)</span><br><span class="line">plt.figure(figsize = (<span class="number">8</span>,<span class="number">8</span>), dpi = <span class="number">80</span>)</span><br><span class="line">plt.title(<span class="string">'Image of J with 95% 0'</span>)</span><br><span class="line">plt.imshow(J.reshape(<span class="number">784</span>, <span class="number">784</span>), cmap = <span class="string">'gray'</span>)</span><br><span class="line">plt.show()</span><br><span class="line">test(J, train_data, <span class="number">20</span>)</span><br></pre></td></tr></table></figure><p><img src="final-7.png" alt=""></p><p><img src="final-8.png" alt=""></p><p><img src="final-9.png" alt=""></p><p><img src="final-10.png" alt=""></p><p>可以看出其保留性能的极限基本在 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="2.262ex" height="1.557ex" role="img" focusable="false" viewBox="0 -666 1000 688"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="39" d="M352 287Q304 211 232 211Q154 211 104 270T44 396Q42 412 42 436V444Q42 537 111 606Q171 666 243 666Q245 666 249 666T257 665H261Q273 665 286 663T323 651T370 619T413 560Q456 472 456 334Q456 194 396 97Q361 41 312 10T208 -22Q147 -22 108 7T68 93T121 149Q143 149 158 135T173 96Q173 78 164 65T148 49T135 44L131 43Q131 41 138 37T164 27T206 22H212Q272 22 313 86Q352 142 352 280V287ZM244 248Q292 248 321 297T351 430Q351 508 343 542Q341 552 337 562T323 588T293 615T246 625Q208 625 181 598Q160 576 154 546T147 441Q147 358 152 329T172 282Q197 248 244 248Z"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(500,0)"></path></g></g></g></svg></mjx-container> 左右，之后的输出基本就只能靠脑补了</p><h2 id="四、总结">四、总结</h2><p>本文使用蒙特卡洛方法对伊辛模型进行模拟，得到了无外磁场作用时系统二级相变的直观图像，表明伊辛模型虽然简单，但是物理内涵和应用范围都十分广泛。</p><p>之后以伊辛模型为理论基础的 HNN 也验证了这一点。但是我们可以看到这种简单的神经网络模型应用范围其实十分有限，更多的是采用其他更加复杂的神经网络模型。但就是这么一个简单的神经网络，也展现出了其抗干扰能力强、训练简单的优势，可以在此基础上引入改进增强性能，如玻尔兹曼机等。</p><h2 id="五、致谢">五、致谢</h2><ul><li>1 蔡浩老师</li><li>2 <a href="https://en.wikipedia.org/wiki/Ising_model">Ising model on Wikipedia</a></li><li>3 <a href="https://en.wikipedia.org/wiki/Hopfield_network">Hopefiled Networrk on Wikipedia</a></li><li>4 <a href="http://web.cs.ucla.edu/~rosen/161/notes/hopfield.html">Hopfield Networks</a></li></ul>]]>
    </content>
    <id>https://editst.com/2018/comput-phys-homework11/</id>
    <link href="https://editst.com/2018/comput-phys-homework11/"/>
    <published>2018-12-20T08:03:51.000Z</published>
    <summary>
      <![CDATA[<h2 id="一、摘要">一、摘要</h2>
<p>本文使用二维伊辛模型进行蒙特卡洛模拟，观察了不同温度下系统平均磁矩随时间的演化关系，并且观察到了温度变化时产生的二级相变现象，证明使用如此简单的模型也可以模拟部分物理学现象。</p>
<p>之后以伊辛模型为基础，简要实现了一种神经网络，即 Hopefield Neural Network(HNN),可以根据给定的训练集来生成关系矩阵，并可以用来还原加入噪声的信号。</p>]]>
    </summary>
    <title>计算物理期末论文</title>
    <updated>2020-11-30T15:06:44.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="物理" scheme="https://editst.com/categories/%E7%89%A9%E7%90%86/"/>
    <category term="计算物理" scheme="https://editst.com/tags/%E8%AE%A1%E7%AE%97%E7%89%A9%E7%90%86/"/>
    <category term="Python" scheme="https://editst.com/tags/Python/"/>
    <content>
      <![CDATA[<h2 id="7-6">7.6</h2><blockquote><p>Simulate SAWs in three dimensions. Determine the vairation of <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.566ex;" xmlns="http://www.w3.org/2000/svg" width="3.768ex" height="2.452ex" role="img" focusable="false" viewBox="0 -833.9 1665.6 1083.9"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mo"><path data-c="27E8" d="M333 -232Q332 -239 327 -244T313 -250Q303 -250 296 -240Q293 -233 202 6T110 250T201 494T296 740Q299 745 306 749L309 750Q312 750 313 750Q331 750 333 732Q333 727 243 489Q152 252 152 250T243 11Q333 -227 333 -232Z"></path></g><g data-mml-node="msup" transform="translate(389,0)"><g data-mml-node="mi"><path data-c="1D45F" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mn" transform="translate(484,363) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g><g data-mml-node="mo" transform="translate(1276.6,0)"><path data-c="27E9" d="M55 732Q56 739 61 744T75 750Q85 750 92 740Q95 733 186 494T278 250T187 6T92 -240Q85 -250 75 -250Q67 -250 62 -245T55 -232Q55 -227 145 11Q236 248 236 250T145 489Q55 727 55 732Z"></path></g></g></g></svg></mjx-container> with step number and find the value of <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: 0;" xmlns="http://www.w3.org/2000/svg" width="1.199ex" height="1ex" role="img" focusable="false" viewBox="0 -442 530 442"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D708" d="M74 431Q75 431 146 436T219 442Q231 442 231 434Q231 428 185 241L137 51H140L150 55Q161 59 177 67T214 86T261 119T312 165Q410 264 445 394Q458 442 496 442Q509 442 519 434T530 411Q530 390 516 352T469 262T388 162T267 70T106 5Q81 -2 71 -2Q66 -2 59 -1T51 1Q45 5 45 11Q45 13 88 188L132 364Q133 377 125 380T86 385H65Q59 391 59 393T61 412Q65 431 74 431Z"></path></g></g></g></svg></mjx-container>, where this parameter is defined through the relation (7.9). Compare your results with those in Figure 7.6. You should find that <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: 0;" xmlns="http://www.w3.org/2000/svg" width="1.199ex" height="1ex" role="img" focusable="false" viewBox="0 -442 530 442"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D708" d="M74 431Q75 431 146 436T219 442Q231 442 231 434Q231 428 185 241L137 51H140L150 55Q161 59 177 67T214 86T261 119T312 165Q410 264 445 394Q458 442 496 442Q509 442 519 434T530 411Q530 390 516 352T469 262T388 162T267 70T106 5Q81 -2 71 -2Q66 -2 59 -1T51 1Q45 5 45 11Q45 13 88 188L132 364Q133 377 125 380T86 385H65Q59 391 59 393T61 412Q65 431 74 431Z"></path></g></g></g></svg></mjx-container> decreases for successively higher dimensions. (It is 1 in one dimension and 3/4 in two dimensions.) Can you explain this trend qualitatively?</p></blockquote><span id="more"></span><p>为了保证随机行走每步的等可能性，这里采用的方法是检查生成的每一个新位置是否与已有位置重复，若重复，则重新生成，直到不重复。为了提高计算精度，模拟1000次后取平均值进行分析。</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> time</span><br><span class="line"><span class="keyword">import</span> copy</span><br><span class="line"><span class="keyword">import</span> multiprocessing <span class="keyword">as</span> mp</span><br><span class="line"><span class="keyword">import</span> numpy <span class="keyword">as</span> np</span><br><span class="line"><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> pl</span><br><span class="line"><span class="keyword">import</span> mpl_toolkits.mplot3d.axes3d <span class="keyword">as</span> ax3d</span><br><span class="line"><span class="keyword">from</span> scipy.optimize <span class="keyword">import</span> curve_fit</span><br><span class="line"></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">walk</span>(<span class="params">last</span>):</span><br><span class="line">    <span class="comment"># 随机挑选三维空间中的一个方向行走</span></span><br><span class="line">    np.random.seed()</span><br><span class="line">    <span class="keyword">while</span> <span class="literal">True</span>:</span><br><span class="line">        d = np.zeros(<span class="number">3</span>)</span><br><span class="line">        d[np.random.choice([<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>])] = np.random.choice([-<span class="number">1</span>, <span class="number">1</span>])</span><br><span class="line">        <span class="keyword">if</span> (d != last).<span class="built_in">any</span>():</span><br><span class="line">            <span class="keyword">return</span> d</span><br><span class="line"></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">saw</span>(<span class="params">steps = <span class="number">500</span></span>):</span><br><span class="line">    <span class="keyword">while</span> <span class="literal">True</span>:</span><br><span class="line">        points = np.zeros((steps + <span class="number">1</span>, <span class="number">3</span>))</span><br><span class="line">        points[<span class="number">1</span>] = walk([<span class="number">0</span>,<span class="number">0</span>,<span class="number">0</span>])</span><br><span class="line">        i = <span class="number">2</span></span><br><span class="line">        <span class="keyword">while</span> i &lt;= steps:</span><br><span class="line">            points[i] = points[i - <span class="number">1</span>] + walk(points[i - <span class="number">2</span>] - points[i - <span class="number">1</span>])</span><br><span class="line">            <span class="keyword">if</span> <span class="built_in">any</span>(np.equal(points[:i-<span class="number">1</span>], points[i]).<span class="built_in">all</span>(<span class="number">1</span>)):</span><br><span class="line">                <span class="keyword">break</span></span><br><span class="line">            i += <span class="number">1</span></span><br><span class="line">        <span class="keyword">if</span> i == steps + <span class="number">1</span>:</span><br><span class="line">            r2 = np.power(np.linalg.norm(points, axis=<span class="number">1</span>),<span class="number">2</span>)</span><br><span class="line">            <span class="keyword">return</span> points, r2</span><br><span class="line"><span class="keyword">import</span> time</span><br><span class="line"><span class="keyword">import</span> copy</span><br><span class="line"><span class="keyword">import</span> multiprocessing <span class="keyword">as</span> mp</span><br><span class="line"><span class="keyword">import</span> numpy <span class="keyword">as</span> np</span><br><span class="line"><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> pl</span><br><span class="line"><span class="keyword">import</span> mpl_toolkits.mplot3d.axes3d <span class="keyword">as</span> ax3d</span><br><span class="line"><span class="keyword">from</span> scipy.optimize <span class="keyword">import</span> curve_fit</span><br><span class="line"></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">walk</span>(<span class="params">last</span>):</span><br><span class="line">    <span class="comment"># 随机挑选三维空间中的一个方向行走</span></span><br><span class="line">    np.random.seed()</span><br><span class="line">    <span class="keyword">while</span> <span class="literal">True</span>:</span><br><span class="line">        d = np.zeros(<span class="number">3</span>)</span><br><span class="line">        d[np.random.choice([<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>])] = np.random.choice([-<span class="number">1</span>, <span class="number">1</span>])</span><br><span class="line">        <span class="keyword">if</span> (d != last).<span class="built_in">any</span>():</span><br><span class="line">            <span class="keyword">return</span> d</span><br><span class="line"></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">saw</span>(<span class="params">steps = <span class="number">50</span></span>):</span><br><span class="line">    <span class="keyword">while</span> <span class="literal">True</span>:</span><br><span class="line">        points = np.zeros((steps + <span class="number">1</span>, <span class="number">3</span>))</span><br><span class="line">        points[<span class="number">1</span>] = walk([<span class="number">0</span>,<span class="number">0</span>,<span class="number">0</span>])</span><br><span class="line">        i = <span class="number">2</span></span><br><span class="line">        <span class="keyword">while</span> i &lt;= steps:</span><br><span class="line">            points[i] = points[i - <span class="number">1</span>] + walk(points[i - <span class="number">2</span>] - points[i - <span class="number">1</span>])</span><br><span class="line">            <span class="keyword">if</span> <span class="built_in">any</span>(np.equal(points[:i-<span class="number">1</span>], points[i]).<span class="built_in">all</span>(<span class="number">1</span>)):</span><br><span class="line">                <span class="keyword">break</span></span><br><span class="line">            i += <span class="number">1</span></span><br><span class="line">        <span class="keyword">if</span> i == steps + <span class="number">1</span>:</span><br><span class="line">            r2 = np.power(np.linalg.norm(points, axis=<span class="number">1</span>),<span class="number">2</span>)</span><br><span class="line">            <span class="keyword">return</span> points, r2</span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> __name__ == <span class="string">'__main__'</span>:</span><br><span class="line">    t1 = time.time()</span><br><span class="line">    args = [<span class="number">60</span>] * <span class="number">1000</span></span><br><span class="line">    pool = mp.Pool()</span><br><span class="line">    results = pool.<span class="built_in">map</span>(saw, args)</span><br><span class="line">    pool.close()</span><br><span class="line">    pool.join()</span><br><span class="line">    t2 = time.time()</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">'calucte time %.2f s'</span>% (t2-t1))</span><br><span class="line"></span><br><span class="line">    r2 = np.array([x[<span class="number">1</span>] <span class="keyword">for</span> x <span class="keyword">in</span> results])</span><br><span class="line">    results = np.array([x[<span class="number">0</span>] <span class="keyword">for</span> x <span class="keyword">in</span> results])</span><br><span class="line">    r2_mean = np.mean(r2, axis = <span class="number">0</span>)</span><br><span class="line">    steps = np.arange(<span class="built_in">len</span>(r2_mean))</span><br><span class="line"></span><br><span class="line">    <span class="comment"># 对结果进行拟合</span></span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">func</span>(<span class="params">x, a, b</span>):</span><br><span class="line">        <span class="keyword">return</span> a * np.power(x, b)</span><br><span class="line">    popt, pcov = curve_fit(func, steps, r2_mean)</span><br><span class="line">    fit = func(steps, popt[<span class="number">0</span>], popt[<span class="number">1</span>])</span><br><span class="line"></span><br><span class="line">    pl.figure(figsize = (<span class="number">10</span>, <span class="number">10</span>), dpi = <span class="number">80</span>)</span><br><span class="line">    pl.plot(steps, r2_mean, <span class="string">'o'</span>, markersize = <span class="number">1.5</span>, label = <span class="string">'$&lt;r^2&gt;$'</span>)</span><br><span class="line">    pl.plot(steps, fit, <span class="string">'r'</span>, label = <span class="string">'fit'</span>)</span><br><span class="line">    pl.text(<span class="number">10</span>, <span class="number">1</span>, <span class="string">r'$&lt;r^2&gt; \approx %.2f t^{%.3f}$'</span>% (popt[<span class="number">0</span>], popt[<span class="number">1</span>]), size = <span class="number">20</span>)</span><br><span class="line">    pl.title(<span class="string">'Self Avoiding Walk'</span>)</span><br><span class="line">    pl.xlabel(<span class="string">'Number of Steps'</span>)</span><br><span class="line">    pl.ylabel(<span class="string">r'$&lt;r^2&gt;$'</span>)</span><br><span class="line">    pl.legend(loc = <span class="string">'center right'</span>)</span><br><span class="line">    pl.show()</span><br><span class="line"></span><br><span class="line">    fig = pl.figure(figsize = (<span class="number">10</span>, <span class="number">10</span>), dpi = <span class="number">80</span>)</span><br><span class="line">    ax = fig.gca(projection=<span class="string">'3d'</span>)</span><br><span class="line">    ax.plot(results[<span class="number">0</span>][:,<span class="number">0</span>],results[<span class="number">0</span>][:,<span class="number">1</span>],results[<span class="number">0</span>][:,<span class="number">2</span>])</span><br><span class="line">    ax.plot(results[<span class="number">1</span>][:,<span class="number">0</span>],results[<span class="number">1</span>][:,<span class="number">1</span>],results[<span class="number">1</span>][:,<span class="number">2</span>])</span><br><span class="line">    pl.title(<span class="string">'Self Avoiding Walk'</span>)</span><br><span class="line">    pl.show()</span><br></pre></td></tr></table></figure><p><img src="homework10-1.png" alt=""></p><p><img src="homework10-2.png" alt=""></p><p>可以发现拟合的结果是 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.186ex;" xmlns="http://www.w3.org/2000/svg" width="10.501ex" height="1.692ex" role="img" focusable="false" viewBox="0 -666 4641.6 748"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g><g data-mml-node="mi" transform="translate(500,0)"><path data-c="1D708" d="M74 431Q75 431 146 436T219 442Q231 442 231 434Q231 428 185 241L137 51H140L150 55Q161 59 177 67T214 86T261 119T312 165Q410 264 445 394Q458 442 496 442Q509 442 519 434T530 411Q530 390 516 352T469 262T388 162T267 70T106 5Q81 -2 71 -2Q66 -2 59 -1T51 1Q45 5 45 11Q45 13 88 188L132 364Q133 377 125 380T86 385H65Q59 391 59 393T61 412Q65 431 74 431Z"></path></g><g data-mml-node="mo" transform="translate(1307.8,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mn" transform="translate(2363.6,0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" transform="translate(778,0)"></path><path data-c="38" d="M70 417T70 494T124 618T248 666Q319 666 374 624T429 515Q429 485 418 459T392 417T361 389T335 371T324 363L338 354Q352 344 366 334T382 323Q457 264 457 174Q457 95 399 37T249 -22Q159 -22 101 29T43 155Q43 263 172 335L154 348Q133 361 127 368Q70 417 70 494ZM286 386L292 390Q298 394 301 396T311 403T323 413T334 425T345 438T355 454T364 471T369 491T371 513Q371 556 342 586T275 624Q268 625 242 625Q201 625 165 599T128 534Q128 511 141 492T167 463T217 431Q224 426 228 424L286 386ZM250 21Q308 21 350 55T392 137Q392 154 387 169T375 194T353 216T330 234T301 253T274 270Q260 279 244 289T218 306L210 311Q204 311 181 294T133 239T107 157Q107 98 150 60T250 21Z" transform="translate(1278,0)"></path><path data-c="35" d="M164 157Q164 133 148 117T109 101H102Q148 22 224 22Q294 22 326 82Q345 115 345 210Q345 313 318 349Q292 382 260 382H254Q176 382 136 314Q132 307 129 306T114 304Q97 304 95 310Q93 314 93 485V614Q93 664 98 664Q100 666 102 666Q103 666 123 658T178 642T253 634Q324 634 389 662Q397 666 402 666Q410 666 410 648V635Q328 538 205 538Q174 538 149 544L139 546V374Q158 388 169 396T205 412T256 420Q337 420 393 355T449 201Q449 109 385 44T229 -22Q148 -22 99 32T50 154Q50 178 61 192T84 210T107 214Q132 214 148 197T164 157Z" transform="translate(1778,0)"></path></g></g></g></svg></mjx-container>，即 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.186ex;" xmlns="http://www.w3.org/2000/svg" width="9.37ex" height="1.692ex" role="img" focusable="false" viewBox="0 -666 4141.6 748"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D708" d="M74 431Q75 431 146 436T219 442Q231 442 231 434Q231 428 185 241L137 51H140L150 55Q161 59 177 67T214 86T261 119T312 165Q410 264 445 394Q458 442 496 442Q509 442 519 434T530 411Q530 390 516 352T469 262T388 162T267 70T106 5Q81 -2 71 -2Q66 -2 59 -1T51 1Q45 5 45 11Q45 13 88 188L132 364Q133 377 125 380T86 385H65Q59 391 59 393T61 412Q65 431 74 431Z"></path></g><g data-mml-node="mo" transform="translate(807.8,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mn" transform="translate(1863.6,0)"><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="35" d="M164 157Q164 133 148 117T109 101H102Q148 22 224 22Q294 22 326 82Q345 115 345 210Q345 313 318 349Q292 382 260 382H254Q176 382 136 314Q132 307 129 306T114 304Q97 304 95 310Q93 314 93 485V614Q93 664 98 664Q100 666 102 666Q103 666 123 658T178 642T253 634Q324 634 389 662Q397 666 402 666Q410 666 410 648V635Q328 538 205 538Q174 538 149 544L139 546V374Q158 388 169 396T205 412T256 420Q337 420 393 355T449 201Q449 109 385 44T229 -22Q148 -22 99 32T50 154Q50 178 61 192T84 210T107 214Q132 214 148 197T164 157Z" transform="translate(778,0)"></path><path data-c="39" d="M352 287Q304 211 232 211Q154 211 104 270T44 396Q42 412 42 436V444Q42 537 111 606Q171 666 243 666Q245 666 249 666T257 665H261Q273 665 286 663T323 651T370 619T413 560Q456 472 456 334Q456 194 396 97Q361 41 312 10T208 -22Q147 -22 108 7T68 93T121 149Q143 149 158 135T173 96Q173 78 164 65T148 49T135 44L131 43Q131 41 138 37T164 27T206 22H212Q272 22 313 86Q352 142 352 280V287ZM244 248Q292 248 321 297T351 430Q351 508 343 542Q341 552 337 562T323 588T293 615T246 625Q208 625 181 598Q160 576 154 546T147 441Q147 358 152 329T172 282Q197 248 244 248Z" transform="translate(1278,0)"></path><path data-c="33" d="M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z" transform="translate(1778,0)"></path></g></g></g></svg></mjx-container>，确实随着维度的增大而减小。直观上解释，可以认为在更高维的情况下可以行走的方向变多，因此在相同的步数下离出发点的距离会变得更短，即路线变得更加弯折。</p><p>查找资料可知三维情况下理论值 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.186ex;" xmlns="http://www.w3.org/2000/svg" width="9.37ex" height="1.692ex" role="img" focusable="false" viewBox="0 -666 4141.6 748"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D708" d="M74 431Q75 431 146 436T219 442Q231 442 231 434Q231 428 185 241L137 51H140L150 55Q161 59 177 67T214 86T261 119T312 165Q410 264 445 394Q458 442 496 442Q509 442 519 434T530 411Q530 390 516 352T469 262T388 162T267 70T106 5Q81 -2 71 -2Q66 -2 59 -1T51 1Q45 5 45 11Q45 13 88 188L132 364Q133 377 125 380T86 385H65Q59 391 59 393T61 412Q65 431 74 431Z"></path></g><g data-mml-node="mo" transform="translate(807.8,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mn" transform="translate(1863.6,0)"><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="35" d="M164 157Q164 133 148 117T109 101H102Q148 22 224 22Q294 22 326 82Q345 115 345 210Q345 313 318 349Q292 382 260 382H254Q176 382 136 314Q132 307 129 306T114 304Q97 304 95 310Q93 314 93 485V614Q93 664 98 664Q100 666 102 666Q103 666 123 658T178 642T253 634Q324 634 389 662Q397 666 402 666Q410 666 410 648V635Q328 538 205 538Q174 538 149 544L139 546V374Q158 388 169 396T205 412T256 420Q337 420 393 355T449 201Q449 109 385 44T229 -22Q148 -22 99 32T50 154Q50 178 61 192T84 210T107 214Q132 214 148 197T164 157Z" transform="translate(778,0)"></path><path data-c="39" d="M352 287Q304 211 232 211Q154 211 104 270T44 396Q42 412 42 436V444Q42 537 111 606Q171 666 243 666Q245 666 249 666T257 665H261Q273 665 286 663T323 651T370 619T413 560Q456 472 456 334Q456 194 396 97Q361 41 312 10T208 -22Q147 -22 108 7T68 93T121 149Q143 149 158 135T173 96Q173 78 164 65T148 49T135 44L131 43Q131 41 138 37T164 27T206 22H212Q272 22 313 86Q352 142 352 280V287ZM244 248Q292 248 321 297T351 430Q351 508 343 542Q341 552 337 562T323 588T293 615T246 625Q208 625 181 598Q160 576 154 546T147 441Q147 358 152 329T172 282Q197 248 244 248Z" transform="translate(1278,0)"></path><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" transform="translate(1778,0)"></path></g></g></g></svg></mjx-container>，模拟得到的数值和理论值略有偏差，而且重复运行程序会有波动，主要原因是模拟次数和步数不足，使得结果没有足够收敛。但是使用该方法在步数增加的情况下计算量会急剧增大，因为此时绝大多数的模拟情况都会形成重复，可以使用其他动态方法，如爬行算法等，可以大幅减小计算时间。</p><p>另外在程序中进行了多进程的尝试，确实可以明显减少计算时间，但要注意应在随机开始时重新生成随机种子，否则会因为进程的复制而使得随机种子相同，造成失去随机的效果。</p><h2 id="7-12">7.12</h2><blockquote><p>Calculate the entropy for the cream-in-your-coffee problem, and reproduce the results in Figure 7.16.</p></blockquote><p>下面采用二维随机行走的方法模拟奶油的扩散，忽略掉粒子的相互作用，并且同一位置可以同时存在多个粒子。对于熵的计算采用单位长度的方格进行统计，即直接统计模拟粒子的坐标分布。</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> copy</span><br><span class="line"><span class="keyword">import</span> numpy <span class="keyword">as</span> np</span><br><span class="line"><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> pl</span><br><span class="line"></span><br><span class="line"><span class="keyword">class</span> <span class="title class_">cream</span>(<span class="title class_ inherited__">object</span>):</span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">__init__</span>(<span class="params">self, total_time = <span class="number">200</span>, lenth = <span class="number">200</span>, particals = <span class="number">1200</span></span>):</span><br><span class="line">        self.t = total_time</span><br><span class="line">        self.n = particals</span><br><span class="line">        self.l = lenth</span><br><span class="line">        self.e = []</span><br><span class="line">        self.d = <span class="built_in">int</span>(self.n / <span class="number">400</span>)</span><br><span class="line">        max_l = <span class="built_in">int</span>(self.l / <span class="number">2</span> + <span class="number">10</span>)</span><br><span class="line">        min_l = <span class="built_in">int</span>(self.l / <span class="number">2</span> - <span class="number">10</span>)</span><br><span class="line">        grid = np.mgrid[min_l:max_l, min_l:max_l]</span><br><span class="line">        points = np.vstack(<span class="built_in">map</span>(np.ravel, grid)).T</span><br><span class="line">        self.points = np.tile(points, (self.d, <span class="number">1</span>))</span><br><span class="line"></span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">run</span>(<span class="params">self</span>):</span><br><span class="line">        t = <span class="number">0</span></span><br><span class="line">        diff, counts = np.unique(self.points, axis = <span class="number">0</span>, return_counts=<span class="literal">True</span>)</span><br><span class="line">        self.diff = [copy.deepcopy(diff)]</span><br><span class="line">        self.counts = [copy.deepcopy(counts)]</span><br><span class="line">        <span class="keyword">while</span> t &lt; self.t:</span><br><span class="line">            old = copy.deepcopy(self.points)</span><br><span class="line">            <span class="keyword">for</span> i <span class="keyword">in</span> <span class="built_in">range</span>(self.n):</span><br><span class="line">                d = np.zeros(<span class="number">2</span>)</span><br><span class="line">                d[np.random.choice((<span class="number">0</span>, <span class="number">1</span>))] = np.random.choice((-<span class="number">1</span>, <span class="number">1</span>))</span><br><span class="line">                self.points[i] = old[i] + d</span><br><span class="line">            t += <span class="number">1</span></span><br><span class="line">            diff, counts = np.unique(self.points, axis = <span class="number">0</span>, return_counts=<span class="literal">True</span>)</span><br><span class="line">            self.e.append(np.<span class="built_in">sum</span>(- counts / self.n * np.log(counts / self.n)))</span><br><span class="line">            <span class="keyword">if</span> t <span class="keyword">in</span> [<span class="number">100</span>, <span class="number">500</span>, <span class="number">1000</span>]:</span><br><span class="line">                self.diff.append(copy.deepcopy(diff))</span><br><span class="line">                self.counts.append(copy.deepcopy(counts))</span><br><span class="line"></span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">show</span>(<span class="params">self</span>):</span><br><span class="line">        pl.figure(figsize = (<span class="number">10</span>, <span class="number">10</span>), dpi = <span class="number">80</span>)</span><br><span class="line">        k = <span class="number">221</span></span><br><span class="line">        i = <span class="number">0</span></span><br><span class="line">        <span class="keyword">for</span> t <span class="keyword">in</span> [<span class="number">0</span>, <span class="number">100</span>, <span class="number">500</span>, <span class="number">1000</span>]:</span><br><span class="line">            pl.subplot(k)</span><br><span class="line">            pl.scatter(self.diff[i][:,<span class="number">0</span>], self.diff[i][:,<span class="number">1</span>], c = self.counts[i], cmap=<span class="string">'rainbow'</span>, s = <span class="number">2</span>)</span><br><span class="line">            pl.xlim(<span class="number">0</span>, <span class="number">200</span>)</span><br><span class="line">            pl.ylim(<span class="number">0</span>, <span class="number">200</span>)</span><br><span class="line">            pl.title(<span class="string">'Cream in coffee t = %d'</span>% t)</span><br><span class="line">            pl.xlabel(<span class="string">'x'</span>)</span><br><span class="line">            pl.ylabel(<span class="string">'y'</span>)</span><br><span class="line">            k += <span class="number">1</span></span><br><span class="line">            i += <span class="number">1</span></span><br><span class="line">        pl.colorbar(orientation=<span class="string">'horizontal'</span>)</span><br><span class="line">        pl.show()</span><br><span class="line"></span><br><span class="line">        pl.figure(figsize = (<span class="number">10</span>, <span class="number">10</span>), dpi = <span class="number">80</span>)</span><br><span class="line">        pl.plot(<span class="built_in">range</span>(self.t), self.e)</span><br><span class="line">        pl.xlabel(<span class="string">'time(steps)'</span>)</span><br><span class="line">        pl.ylabel(<span class="string">'Entropy'</span>)</span><br><span class="line">        pl.title(<span class="string">'Entropy versus time'</span>)</span><br><span class="line">        pl.show()</span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> __name__ == <span class="string">'__main__'</span>:</span><br><span class="line">    a = cream(total_time = <span class="number">2000</span>, particals=<span class="number">800</span>)</span><br><span class="line">    a.run()</span><br><span class="line">    a.show()</span><br></pre></td></tr></table></figure><p><img src="homework10-3.png" alt=""></p><p><img src="homework10-4.png" alt=""></p><p>可以看到模拟计算得到的熵值是逐渐增大，并且增长趋势是减缓的，这和课本以及热统的知识相符，即系统会达到熵最大的平衡状态。由于划分的网格比较细，因此可以发现熵的波动幅度大于课本上的图7.16（使用的是8×8方格）。</p>]]>
    </content>
    <id>https://editst.com/2018/comput-phys-homework10/</id>
    <link href="https://editst.com/2018/comput-phys-homework10/"/>
    <published>2018-12-09T10:44:10.000Z</published>
    <summary>
      <![CDATA[<h2 id="7-6">7.6</h2>
<blockquote>
<p>Simulate SAWs in three dimensions. Determine the vairation of <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.566ex;" xmlns="http://www.w3.org/2000/svg" width="3.768ex" height="2.452ex" role="img" focusable="false" viewBox="0 -833.9 1665.6 1083.9"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mo"><path data-c="27E8" d="M333 -232Q332 -239 327 -244T313 -250Q303 -250 296 -240Q293 -233 202 6T110 250T201 494T296 740Q299 745 306 749L309 750Q312 750 313 750Q331 750 333 732Q333 727 243 489Q152 252 152 250T243 11Q333 -227 333 -232Z"></path></g><g data-mml-node="msup" transform="translate(389,0)"><g data-mml-node="mi"><path data-c="1D45F" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mn" transform="translate(484,363) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g><g data-mml-node="mo" transform="translate(1276.6,0)"><path data-c="27E9" d="M55 732Q56 739 61 744T75 750Q85 750 92 740Q95 733 186 494T278 250T187 6T92 -240Q85 -250 75 -250Q67 -250 62 -245T55 -232Q55 -227 145 11Q236 248 236 250T145 489Q55 727 55 732Z"></path></g></g></g></svg></mjx-container> with step number and find the value of <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: 0;" xmlns="http://www.w3.org/2000/svg" width="1.199ex" height="1ex" role="img" focusable="false" viewBox="0 -442 530 442"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D708" d="M74 431Q75 431 146 436T219 442Q231 442 231 434Q231 428 185 241L137 51H140L150 55Q161 59 177 67T214 86T261 119T312 165Q410 264 445 394Q458 442 496 442Q509 442 519 434T530 411Q530 390 516 352T469 262T388 162T267 70T106 5Q81 -2 71 -2Q66 -2 59 -1T51 1Q45 5 45 11Q45 13 88 188L132 364Q133 377 125 380T86 385H65Q59 391 59 393T61 412Q65 431 74 431Z"></path></g></g></g></svg></mjx-container>, where this parameter is defined through the relation (7.9). Compare your results with those in Figure 7.6. You should find that <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: 0;" xmlns="http://www.w3.org/2000/svg" width="1.199ex" height="1ex" role="img" focusable="false" viewBox="0 -442 530 442"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D708" d="M74 431Q75 431 146 436T219 442Q231 442 231 434Q231 428 185 241L137 51H140L150 55Q161 59 177 67T214 86T261 119T312 165Q410 264 445 394Q458 442 496 442Q509 442 519 434T530 411Q530 390 516 352T469 262T388 162T267 70T106 5Q81 -2 71 -2Q66 -2 59 -1T51 1Q45 5 45 11Q45 13 88 188L132 364Q133 377 125 380T86 385H65Q59 391 59 393T61 412Q65 431 74 431Z"></path></g></g></g></svg></mjx-container> decreases for successively higher dimensions. (It is 1 in one dimension and 3/4 in two dimensions.) Can you explain this trend qualitatively?</p>
</blockquote>]]>
    </summary>
    <title>计算物理第十次作业</title>
    <updated>2020-11-30T15:06:44.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="物理" scheme="https://editst.com/categories/%E7%89%A9%E7%90%86/"/>
    <category term="计算物理" scheme="https://editst.com/tags/%E8%AE%A1%E7%AE%97%E7%89%A9%E7%90%86/"/>
    <category term="Python" scheme="https://editst.com/tags/Python/"/>
    <content>
      <![CDATA[<h2 id="5-13">5.13</h2><blockquote><p>Calculate the value of <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.025ex;" xmlns="http://www.w3.org/2000/svg" width="1.29ex" height="1ex" role="img" focusable="false" viewBox="0 -431 570 442"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D70B" d="M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"></path></g></g></g></svg></mjx-container> by using numerical integration to estimate the area of a circle of unit radius. Observe how your estimate approaches the exact value (3.1415926…) as the grid size in the integration is reduced.</p></blockquote><span id="more"></span><p>这里计算圆周率使用最简单的办法，即对一个半圆方程进行积分</p><p><mjx-container class="MathJax" jax="SVG" display="true"><svg style="vertical-align: -2.159ex;" xmlns="http://www.w3.org/2000/svg" width="20.126ex" height="5.686ex" role="img" focusable="false" viewBox="0 -1559 8895.9 2513.3"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msubsup"><g data-mml-node="mo" transform="translate(0 1)"><path data-c="222B" d="M114 -798Q132 -824 165 -824H167Q195 -824 223 -764T275 -600T320 -391T362 -164Q365 -143 367 -133Q439 292 523 655T645 1127Q651 1145 655 1157T672 1201T699 1257T733 1306T777 1346T828 1360Q884 1360 912 1325T944 1245Q944 1220 932 1205T909 1186T887 1183Q866 1183 849 1198T832 1239Q832 1287 885 1296L882 1300Q879 1303 874 1307T866 1313Q851 1323 833 1323Q819 1323 807 1311T775 1255T736 1139T689 936T633 628Q574 293 510 -5T410 -437T355 -629Q278 -862 165 -862Q125 -862 92 -831T55 -746Q55 -711 74 -698T112 -685Q133 -685 150 -700T167 -741Q167 -789 114 -798Z"></path></g><g data-mml-node="TeXAtom" transform="translate(1046.4,1088.1) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path></g></g><g data-mml-node="TeXAtom" transform="translate(589,-896.4) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mo"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="mn" transform="translate(778,0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path></g></g></g><g data-mml-node="msqrt" transform="translate(1709.3,0)"><g transform="translate(1020,0)"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path></g><g data-mml-node="mo" transform="translate(722.2,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="msup" transform="translate(1722.4,0)"><g data-mml-node="mi"><path data-c="1D465" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path></g><g data-mml-node="mn" transform="translate(605,289) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g><g data-mml-node="mo" transform="translate(0,204.2)"><path data-c="221A" d="M263 249Q264 249 315 130T417 -108T470 -228L725 302Q981 837 982 839Q989 850 1001 850Q1008 850 1013 844T1020 832V826L741 243Q645 43 540 -176Q479 -303 469 -324T453 -348Q449 -350 436 -350L424 -349L315 -96Q206 156 205 156L171 130Q138 104 137 104L111 130L263 249Z"></path></g><rect width="2731" height="60" x="1020" y="994.2"></rect></g><g data-mml-node="mi" transform="translate(5460.3,0)"><path data-c="1D451" d="M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z"></path></g><g data-mml-node="mi" transform="translate(5980.3,0)"><path data-c="1D465" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path></g><g data-mml-node="mo" transform="translate(6830.1,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mfrac" transform="translate(7885.9,0)"><g data-mml-node="mi" transform="translate(220,676)"><path data-c="1D70B" d="M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"></path></g><g data-mml-node="mn" transform="translate(255,-686)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g><rect width="770" height="60" x="120" y="220"></rect></g></g></g></svg></mjx-container></p><p>使用数值计算的方法，把积分区间划为足够小的格子，然后累加即可，下面是课本上给出的最粗糙的数值积分方法</p><p><mjx-container class="MathJax" jax="SVG" display="true"><svg style="vertical-align: -2.697ex;" xmlns="http://www.w3.org/2000/svg" width="24.9ex" height="5.776ex" role="img" focusable="false" viewBox="0 -1361 11005.8 2553.2"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mo" transform="translate(0 1)"><path data-c="222B" d="M114 -798Q132 -824 165 -824H167Q195 -824 223 -764T275 -600T320 -391T362 -164Q365 -143 367 -133Q439 292 523 655T645 1127Q651 1145 655 1157T672 1201T699 1257T733 1306T777 1346T828 1360Q884 1360 912 1325T944 1245Q944 1220 932 1205T909 1186T887 1183Q866 1183 849 1198T832 1239Q832 1287 885 1296L882 1300Q879 1303 874 1307T866 1313Q851 1323 833 1323Q819 1323 807 1311T775 1255T736 1139T689 936T633 628Q574 293 510 -5T410 -437T355 -629Q278 -862 165 -862Q125 -862 92 -831T55 -746Q55 -711 74 -698T112 -685Q133 -685 150 -700T167 -741Q167 -789 114 -798Z"></path></g><g data-mml-node="mi" transform="translate(1110.7,0)"><path data-c="1D453" d="M118 -162Q120 -162 124 -164T135 -167T147 -168Q160 -168 171 -155T187 -126Q197 -99 221 27T267 267T289 382V385H242Q195 385 192 387Q188 390 188 397L195 425Q197 430 203 430T250 431Q298 431 298 432Q298 434 307 482T319 540Q356 705 465 705Q502 703 526 683T550 630Q550 594 529 578T487 561Q443 561 443 603Q443 622 454 636T478 657L487 662Q471 668 457 668Q445 668 434 658T419 630Q412 601 403 552T387 469T380 433Q380 431 435 431Q480 431 487 430T498 424Q499 420 496 407T491 391Q489 386 482 386T428 385H372L349 263Q301 15 282 -47Q255 -132 212 -173Q175 -205 139 -205Q107 -205 81 -186T55 -132Q55 -95 76 -78T118 -61Q162 -61 162 -103Q162 -122 151 -136T127 -157L118 -162Z"></path></g><g data-mml-node="mo" transform="translate(1660.7,0)"><path data-c="28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path></g><g data-mml-node="mi" transform="translate(2049.7,0)"><path data-c="1D465" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path></g><g data-mml-node="mo" transform="translate(2621.7,0)"><path data-c="29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></g><g data-mml-node="mi" transform="translate(3010.7,0)"><path data-c="1D451" d="M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z"></path></g><g data-mml-node="mi" transform="translate(3530.7,0)"><path data-c="1D465" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path></g><g data-mml-node="mo" transform="translate(4380.4,0)"><path data-c="2248" d="M55 319Q55 360 72 393T114 444T163 472T205 482Q207 482 213 482T223 483Q262 483 296 468T393 413L443 381Q502 346 553 346Q609 346 649 375T694 454Q694 465 698 474T708 483Q722 483 722 452Q722 386 675 338T555 289Q514 289 468 310T388 357T308 404T224 426Q164 426 125 393T83 318Q81 289 69 289Q55 289 55 319ZM55 85Q55 126 72 159T114 210T163 238T205 248Q207 248 213 248T223 249Q262 249 296 234T393 179L443 147Q502 112 553 112Q609 112 649 141T694 220Q694 249 708 249T722 217Q722 153 675 104T555 55Q514 55 468 76T388 123T308 170T224 192Q164 192 125 159T83 84Q80 55 69 55Q55 55 55 85Z"></path></g><g data-mml-node="munder" transform="translate(5436.2,0)"><g data-mml-node="mo"><path data-c="2211" d="M60 948Q63 950 665 950H1267L1325 815Q1384 677 1388 669H1348L1341 683Q1320 724 1285 761Q1235 809 1174 838T1033 881T882 898T699 902H574H543H251L259 891Q722 258 724 252Q725 250 724 246Q721 243 460 -56L196 -356Q196 -357 407 -357Q459 -357 548 -357T676 -358Q812 -358 896 -353T1063 -332T1204 -283T1307 -196Q1328 -170 1348 -124H1388Q1388 -125 1381 -145T1356 -210T1325 -294L1267 -449L666 -450Q64 -450 61 -448Q55 -446 55 -439Q55 -437 57 -433L590 177Q590 178 557 222T452 366T322 544L56 909L55 924Q55 945 60 948Z"></path></g><g data-mml-node="mi" transform="translate(600,-1084.4) scale(0.707)"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g></g><g data-mml-node="mi" transform="translate(7046.9,0)"><path data-c="1D453" d="M118 -162Q120 -162 124 -164T135 -167T147 -168Q160 -168 171 -155T187 -126Q197 -99 221 27T267 267T289 382V385H242Q195 385 192 387Q188 390 188 397L195 425Q197 430 203 430T250 431Q298 431 298 432Q298 434 307 482T319 540Q356 705 465 705Q502 703 526 683T550 630Q550 594 529 578T487 561Q443 561 443 603Q443 622 454 636T478 657L487 662Q471 668 457 668Q445 668 434 658T419 630Q412 601 403 552T387 469T380 433Q380 431 435 431Q480 431 487 430T498 424Q499 420 496 407T491 391Q489 386 482 386T428 385H372L349 263Q301 15 282 -47Q255 -132 212 -173Q175 -205 139 -205Q107 -205 81 -186T55 -132Q55 -95 76 -78T118 -61Q162 -61 162 -103Q162 -122 151 -136T127 -157L118 -162Z"></path></g><g data-mml-node="mo" transform="translate(7596.9,0)"><path data-c="28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path></g><g data-mml-node="msub" transform="translate(7985.9,0)"><g data-mml-node="mi"><path data-c="1D465" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path></g><g data-mml-node="mi" transform="translate(605,-150) scale(0.707)"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g></g><g data-mml-node="mo" transform="translate(8884.8,0)"><path data-c="29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></g><g data-mml-node="mi" transform="translate(9273.8,0)"><path data-c="394" d="M51 0Q46 4 46 7Q46 9 215 357T388 709Q391 716 416 716Q439 716 444 709Q447 705 616 357T786 7Q786 4 781 0H51ZM507 344L384 596L137 92L383 91H630Q630 93 507 344Z"></path></g><g data-mml-node="msub" transform="translate(10106.8,0)"><g data-mml-node="mi"><path data-c="1D465" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path></g><g data-mml-node="mi" transform="translate(605,-150) scale(0.707)"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g></g></g></g></svg></mjx-container></p><p>最后乘以2就得到了圆周率。下面画出误差随划分网格的个数的变化关系</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">from</span> scipy.optimize <span class="keyword">import</span> curve_fit</span><br><span class="line"><span class="keyword">import</span> numpy <span class="keyword">as</span> np</span><br><span class="line"><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> pl</span><br><span class="line"></span><br><span class="line">steps = np.arange(<span class="number">100000</span>, <span class="number">10000000</span>, <span class="number">100000</span>)</span><br><span class="line">ans = np.array([])</span><br><span class="line"><span class="keyword">for</span> i <span class="keyword">in</span> steps:</span><br><span class="line">    x = np.linspace(-<span class="number">1</span>, <span class="number">1</span>, i)</span><br><span class="line">    dx = <span class="number">2</span> / i</span><br><span class="line">    y = (<span class="number">1</span> - x * x) ** <span class="number">0.5</span></span><br><span class="line">    s = dx * np.<span class="built_in">sum</span>(y) * <span class="number">2</span></span><br><span class="line">    ans = np.append(ans, (np.pi - s))</span><br><span class="line"></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">func</span>(<span class="params">x, a, b</span>):</span><br><span class="line">    <span class="keyword">return</span> a * np.power(x, b)</span><br><span class="line">popt, pcov = curve_fit(func, steps, ans)</span><br><span class="line">fit = func(steps, popt[<span class="number">0</span>],popt[<span class="number">1</span>])</span><br><span class="line"></span><br><span class="line">pl.figure(figsize = (<span class="number">10</span>, <span class="number">10</span>), dpi = <span class="number">80</span>)</span><br><span class="line">pl.plot(steps, ans, <span class="string">'o'</span>, markersize = <span class="number">3</span>, label = <span class="string">'Error'</span>)</span><br><span class="line">pl.plot(steps, test, label = <span class="string">'Fit'</span>)</span><br><span class="line">pl.legend(loc = <span class="string">'upper right'</span>)</span><br><span class="line">pl.xlabel(<span class="string">'Number of grids'</span>)</span><br><span class="line">pl.ylabel(<span class="string">'Error'</span>)</span><br><span class="line">pl.title(<span class="string">'The error versus number of grids'</span>)</span><br><span class="line">pl.text(<span class="number">1e6</span>, <span class="number">1e-5</span>, <span class="string">'$\Delta=%.2f N^{%.2f}$'</span>% (popt[<span class="number">0</span>], popt[<span class="number">1</span>]), size = <span class="number">20</span>)</span><br><span class="line">pl.xscale(<span class="string">'log'</span>)</span><br><span class="line">pl.yscale(<span class="string">'log'</span>)</span><br><span class="line">pl.show()</span><br></pre></td></tr></table></figure><p><img src="homework9-1.png" alt=""></p><p>在双对数坐标下关系曲线为直线，说明误差与网格个数的关系是幂函数关系，拟合后发现是刚好成反比，实际应用上一般使用梯形近似或者辛普森近似等方法，会使精度在同等条件显著提高。</p><h2 id="5-14">5.14</h2><blockquote><p>Write a program to calculate the magnetic field for your favorite current distribution. One possibility is a pair of loops of radius <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.025ex;" xmlns="http://www.w3.org/2000/svg" width="1.02ex" height="1.025ex" role="img" focusable="false" viewBox="0 -442 451 453"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D45F" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g></g></svg></mjx-container>, with one loop lying in the <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.464ex;" xmlns="http://www.w3.org/2000/svg" width="5.168ex" height="1.783ex" role="img" focusable="false" viewBox="0 -583 2284.4 788"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D465" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path></g><g data-mml-node="mo" transform="translate(794.2,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="mi" transform="translate(1794.4,0)"><path data-c="1D466" d="M21 287Q21 301 36 335T84 406T158 442Q199 442 224 419T250 355Q248 336 247 334Q247 331 231 288T198 191T182 105Q182 62 196 45T238 27Q261 27 281 38T312 61T339 94Q339 95 344 114T358 173T377 247Q415 397 419 404Q432 431 462 431Q475 431 483 424T494 412T496 403Q496 390 447 193T391 -23Q363 -106 294 -155T156 -205Q111 -205 77 -183T43 -117Q43 -95 50 -80T69 -58T89 -48T106 -45Q150 -45 150 -87Q150 -107 138 -122T115 -142T102 -147L99 -148Q101 -153 118 -160T152 -167H160Q177 -167 186 -165Q219 -156 247 -127T290 -65T313 -9T321 21L315 17Q309 13 296 6T270 -6Q250 -11 231 -11Q185 -11 150 11T104 82Q103 89 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g></g></svg></mjx-container> plane and the other in the <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.464ex;" xmlns="http://www.w3.org/2000/svg" width="4.926ex" height="1.783ex" role="img" focusable="false" viewBox="0 -583 2177.4 788"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D466" d="M21 287Q21 301 36 335T84 406T158 442Q199 442 224 419T250 355Q248 336 247 334Q247 331 231 288T198 191T182 105Q182 62 196 45T238 27Q261 27 281 38T312 61T339 94Q339 95 344 114T358 173T377 247Q415 397 419 404Q432 431 462 431Q475 431 483 424T494 412T496 403Q496 390 447 193T391 -23Q363 -106 294 -155T156 -205Q111 -205 77 -183T43 -117Q43 -95 50 -80T69 -58T89 -48T106 -45Q150 -45 150 -87Q150 -107 138 -122T115 -142T102 -147L99 -148Q101 -153 118 -160T152 -167H160Q177 -167 186 -165Q219 -156 247 -127T290 -65T313 -9T321 21L315 17Q309 13 296 6T270 -6Q250 -11 231 -11Q185 -11 150 11T104 82Q103 89 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mo" transform="translate(712.2,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="mi" transform="translate(1712.4,0)"><path data-c="1D467" d="M347 338Q337 338 294 349T231 360Q211 360 197 356T174 346T162 335T155 324L153 320Q150 317 138 317Q117 317 117 325Q117 330 120 339Q133 378 163 406T229 440Q241 442 246 442Q271 442 291 425T329 392T367 375Q389 375 411 408T434 441Q435 442 449 442H462Q468 436 468 434Q468 430 463 420T449 399T432 377T418 358L411 349Q368 298 275 214T160 106L148 94L163 93Q185 93 227 82T290 71Q328 71 360 90T402 140Q406 149 409 151T424 153Q443 153 443 143Q443 138 442 134Q425 72 376 31T278 -11Q252 -11 232 6T193 40T155 57Q111 57 76 -3Q70 -11 59 -11H54H41Q35 -5 35 -2Q35 13 93 84Q132 129 225 214T340 322Q352 338 347 338Z"></path></g></g></g></svg></mjx-container> plane. Another possibility is the solenoid considered in Figure 5.17. （自由发挥电流分布，形状越奇怪越好^_^)</p></blockquote><p>利用毕奥-萨伐尔定律</p><p><mjx-container class="MathJax" jax="SVG" display="true"><svg style="vertical-align: -2.192ex;" xmlns="http://www.w3.org/2000/svg" width="29.387ex" height="5.438ex" role="img" focusable="false" viewBox="0 -1435 12989 2403.7"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="TeXAtom" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D401" d="M720 510Q720 476 704 448T665 404T619 377T580 362L564 359L583 356Q602 353 632 342T690 312Q712 292 725 276Q752 235 752 189V183Q752 160 741 125Q698 18 547 2Q543 1 288 0H39V62H147V624H39V686H264H409Q502 686 542 681T624 655Q720 607 720 510ZM563 513Q563 553 548 578T518 611T486 622Q479 624 385 624H293V382H375Q458 383 467 385Q563 405 563 513ZM590 192Q590 307 505 329Q504 330 503 330L398 331H293V62H391H400H444Q496 62 528 75T580 131Q590 155 590 192Z"></path></g></g><g data-mml-node="mo" transform="translate(818,0)"><path data-c="28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path></g><g data-mml-node="TeXAtom" data-mjx-texclass="ORD" transform="translate(1207,0)"><g data-mml-node="mi"><path data-c="1D42B" d="M405 293T374 293T324 312T305 361Q305 378 312 394Q315 397 315 399Q305 399 294 394T266 375T238 329T222 249Q221 241 221 149V62H308V0H298Q280 3 161 3Q47 3 38 0H29V62H98V210V303Q98 353 96 363T83 376Q69 380 42 380H29V442H32L118 446Q204 450 205 450H210V414L211 378Q247 449 315 449H321Q384 449 413 422T442 360Q442 332 424 313Z"></path></g></g><g data-mml-node="mo" transform="translate(1681,0)"><path data-c="29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></g><g data-mml-node="mo" transform="translate(2347.8,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mfrac" transform="translate(3403.6,0)"><g data-mml-node="mrow" transform="translate(220,676)"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D707" d="M58 -216Q44 -216 34 -208T23 -186Q23 -176 96 116T173 414Q186 442 219 442Q231 441 239 435T249 423T251 413Q251 401 220 279T187 142Q185 131 185 107V99Q185 26 252 26Q261 26 270 27T287 31T302 38T315 45T327 55T338 65T348 77T356 88T365 100L372 110L408 253Q444 395 448 404Q461 431 491 431Q504 431 512 424T523 412T525 402L449 84Q448 79 448 68Q448 43 455 35T476 26Q485 27 496 35Q517 55 537 131Q543 151 547 152Q549 153 557 153H561Q580 153 580 144Q580 138 575 117T555 63T523 13Q510 0 491 -8Q483 -10 467 -10Q446 -10 429 -4T402 11T385 29T376 44T374 51L368 45Q362 39 350 30T324 12T288 -4T246 -11Q199 -11 153 12L129 -85Q108 -167 104 -180T92 -202Q76 -216 58 -216Z"></path></g><g data-mml-node="TeXAtom" transform="translate(636,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mn"><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path></g></g></g><g data-mml-node="mi" transform="translate(1039.6,0)"><path data-c="1D43C" d="M43 1Q26 1 26 10Q26 12 29 24Q34 43 39 45Q42 46 54 46H60Q120 46 136 53Q137 53 138 54Q143 56 149 77T198 273Q210 318 216 344Q286 624 286 626Q284 630 284 631Q274 637 213 637H193Q184 643 189 662Q193 677 195 680T209 683H213Q285 681 359 681Q481 681 487 683H497Q504 676 504 672T501 655T494 639Q491 637 471 637Q440 637 407 634Q393 631 388 623Q381 609 337 432Q326 385 315 341Q245 65 245 59Q245 52 255 50T307 46H339Q345 38 345 37T342 19Q338 6 332 0H316Q279 2 179 2Q143 2 113 2T65 2T43 1Z"></path></g></g><g data-mml-node="mrow" transform="translate(456.8,-686)"><g data-mml-node="mn"><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z"></path></g><g data-mml-node="mi" transform="translate(500,0)"><path data-c="1D70B" d="M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"></path></g></g><rect width="1743.6" height="60" x="120" y="220"></rect></g><g data-mml-node="msub" transform="translate(5553.8,0)"><g data-mml-node="mo" transform="translate(0 1)"><path data-c="222B" d="M114 -798Q132 -824 165 -824H167Q195 -824 223 -764T275 -600T320 -391T362 -164Q365 -143 367 -133Q439 292 523 655T645 1127Q651 1145 655 1157T672 1201T699 1257T733 1306T777 1346T828 1360Q884 1360 912 1325T944 1245Q944 1220 932 1205T909 1186T887 1183Q866 1183 849 1198T832 1239Q832 1287 885 1296L882 1300Q879 1303 874 1307T866 1313Q851 1323 833 1323Q819 1323 807 1311T775 1255T736 1139T689 936T633 628Q574 293 510 -5T410 -437T355 -629Q278 -862 165 -862Q125 -862 92 -831T55 -746Q55 -711 74 -698T112 -685Q133 -685 150 -700T167 -741Q167 -789 114 -798Z"></path></g><g data-mml-node="TeXAtom" transform="translate(589,-896.4) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="TeXAtom" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D543" d="M12 666Q12 675 24 683H333L340 679Q350 665 340 655Q333 648 309 648Q287 646 279 643T266 630Q264 623 264 346Q264 68 266 57Q274 40 284 35H340Q413 37 460 55Q514 78 553 117T602 197Q605 221 622 221Q629 221 634 215T640 201Q638 194 625 105T611 12Q611 6 600 -1H24Q12 5 12 16Q12 35 51 35Q92 38 97 52Q102 60 102 341T97 632Q91 645 51 648Q12 648 12 666ZM137 341Q137 131 136 89T130 37Q129 36 129 35H237Q235 41 233 48L229 61L226 339Q226 621 229 628Q230 630 231 636T233 643V648H129Q132 641 133 638T135 603T137 517T137 341ZM580 48Q580 59 583 74T586 97Q586 98 585 97T579 92T571 86Q549 64 513 43L500 35H577L580 48Z"></path></g></g><g data-mml-node="mo" transform="translate(667,0)"><path data-c="2035" d="M12 501Q12 527 31 542T63 558Q73 560 77 560Q114 560 128 528Q133 518 188 293T244 61Q244 56 223 50T195 43Q192 43 190 45T102 263T14 486Q12 496 12 501Z"></path></g></g></g><g data-mml-node="TeXAtom" data-mjx-texclass="ORD" transform="translate(7025.5,0)"><g data-mml-node="mi"><path data-c="64" d="M376 495Q376 511 376 535T377 568Q377 613 367 624T316 637H298V660Q298 683 300 683L310 684Q320 685 339 686T376 688Q393 689 413 690T443 693T454 694H457V390Q457 84 458 81Q461 61 472 55T517 46H535V0Q533 0 459 -5T380 -11H373V44L365 37Q307 -11 235 -11Q158 -11 96 50T34 215Q34 315 97 378T244 442Q319 442 376 393V495ZM373 342Q328 405 260 405Q211 405 173 369Q146 341 139 305T131 211Q131 155 138 120T173 59Q203 26 251 26Q322 26 373 103V342Z"></path></g></g><g data-mml-node="mi" transform="translate(7581.5,0)"><path data-c="2113" d="M245 -19Q228 -19 212 -16T184 -6T162 9T143 27T129 46T118 66T111 84T106 99T102 111L101 116L69 89L36 62Q31 60 24 62Q-1 88 -1 98Q-1 101 1 105Q1 106 73 170L95 189V197Q95 242 112 317T159 476T241 624T353 701Q357 702 367 702Q428 702 444 641Q446 630 446 606Q446 454 241 246L215 220L212 203Q203 150 203 114Q203 113 203 106T204 95T205 82T209 67T214 54T223 43T236 35T253 32Q277 32 305 44T352 70T389 98T407 112Q409 113 412 113Q420 113 432 95Q445 77 443 70Q440 64 416 44T342 3T245 -19ZM387 615Q387 651 366 651Q342 651 321 604T276 470L241 331Q246 331 280 373T350 486T387 615Z"></path></g><g data-mml-node="mo" transform="translate(8055.5,0)"><path data-c="2035" d="M12 501Q12 527 31 542T63 558Q73 560 77 560Q114 560 128 528Q133 518 188 293T244 61Q244 56 223 50T195 43Q192 43 190 45T102 263T14 486Q12 496 12 501Z"></path></g><g data-mml-node="mo" transform="translate(8330.5,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z"></path></g><g data-mml-node="mfrac" transform="translate(9108.5,0)"><g data-mml-node="mrow" transform="translate(716.3,676)"><g data-mml-node="TeXAtom" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D42B" d="M405 293T374 293T324 312T305 361Q305 378 312 394Q315 397 315 399Q305 399 294 394T266 375T238 329T222 249Q221 241 221 149V62H308V0H298Q280 3 161 3Q47 3 38 0H29V62H98V210V303Q98 353 96 363T83 376Q69 380 42 380H29V442H32L118 446Q204 450 205 450H210V414L211 378Q247 449 315 449H321Q384 449 413 422T442 360Q442 332 424 313Z"></path></g></g><g data-mml-node="mo" transform="translate(696.2,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="msup" transform="translate(1696.4,0)"><g data-mml-node="TeXAtom" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D42B" d="M405 293T374 293T324 312T305 361Q305 378 312 394Q315 397 315 399Q305 399 294 394T266 375T238 329T222 249Q221 241 221 149V62H308V0H298Q280 3 161 3Q47 3 38 0H29V62H98V210V303Q98 353 96 363T83 376Q69 380 42 380H29V442H32L118 446Q204 450 205 450H210V414L211 378Q247 449 315 449H321Q384 449 413 422T442 360Q442 332 424 313Z"></path></g></g><g data-mml-node="mo" transform="translate(507,363) scale(0.707)"><path data-c="2032" d="M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"></path></g></g></g><g data-mml-node="mrow" transform="translate(220,-719.2)"><g data-mml-node="mo" transform="translate(0 -0.5)"><path data-c="7C" d="M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"></path></g><g data-mml-node="TeXAtom" data-mjx-texclass="ORD" transform="translate(278,0)"><g data-mml-node="mi"><path data-c="1D42B" d="M405 293T374 293T324 312T305 361Q305 378 312 394Q315 397 315 399Q305 399 294 394T266 375T238 329T222 249Q221 241 221 149V62H308V0H298Q280 3 161 3Q47 3 38 0H29V62H98V210V303Q98 353 96 363T83 376Q69 380 42 380H29V442H32L118 446Q204 450 205 450H210V414L211 378Q247 449 315 449H321Q384 449 413 422T442 360Q442 332 424 313Z"></path></g></g><g data-mml-node="mo" transform="translate(974.2,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="msup" transform="translate(1974.4,0)"><g data-mml-node="TeXAtom" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D42B" d="M405 293T374 293T324 312T305 361Q305 378 312 394Q315 397 315 399Q305 399 294 394T266 375T238 329T222 249Q221 241 221 149V62H308V0H298Q280 3 161 3Q47 3 38 0H29V62H98V210V303Q98 353 96 363T83 376Q69 380 42 380H29V442H32L118 446Q204 450 205 450H210V414L211 378Q247 449 315 449H321Q384 449 413 422T442 360Q442 332 424 313Z"></path></g></g><g data-mml-node="mo" transform="translate(507,289) scale(0.707)"><path data-c="2032" d="M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"></path></g></g><g data-mml-node="msup" transform="translate(2725.9,0)"><g data-mml-node="mo" transform="translate(0 -0.5)"><path data-c="7C" d="M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"></path></g><g data-mml-node="mn" transform="translate(311,289) scale(0.707)"><path data-c="33" d="M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z"></path></g></g></g><rect width="3640.5" height="60" x="120" y="220"></rect></g></g></g></svg></mjx-container></p><p>首先将电流分布离散化，分别计算出 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: 0;" xmlns="http://www.w3.org/2000/svg" width="4.59ex" height="1.62ex" role="img" focusable="false" viewBox="0 -716 2029 716"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D43C" d="M43 1Q26 1 26 10Q26 12 29 24Q34 43 39 45Q42 46 54 46H60Q120 46 136 53Q137 53 138 54Q143 56 149 77T198 273Q210 318 216 344Q286 624 286 626Q284 630 284 631Q274 637 213 637H193Q184 643 189 662Q193 677 195 680T209 683H213Q285 681 359 681Q481 681 487 683H497Q504 676 504 672T501 655T494 639Q491 637 471 637Q440 637 407 634Q393 631 388 623Q381 609 337 432Q326 385 315 341Q245 65 245 59Q245 52 255 50T307 46H339Q345 38 345 37T342 19Q338 6 332 0H316Q279 2 179 2Q143 2 113 2T65 2T43 1Z"></path></g><g data-mml-node="mi" transform="translate(504,0)"><path data-c="394" d="M51 0Q46 4 46 7Q46 9 215 357T388 709Q391 716 416 716Q439 716 444 709Q447 705 616 357T786 7Q786 4 781 0H51ZM507 344L384 596L137 92L383 91H630Q630 93 507 344Z"></path></g><g data-mml-node="TeXAtom" data-mjx-texclass="ORD" transform="translate(1337,0)"><g data-mml-node="TeXAtom" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D40B" d="M643 285Q641 280 629 148T612 4V0H39V62H147V624H39V686H51Q75 683 228 683Q415 685 425 686H439V624H304V62H352H378Q492 62 539 138Q551 156 558 178T569 214T576 255T581 289H643V285Z"></path></g></g></g></g></g></svg></mjx-container> 和 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: 0;" xmlns="http://www.w3.org/2000/svg" width="2.957ex" height="1.62ex" role="img" focusable="false" viewBox="0 -716 1307 716"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="394" d="M51 0Q46 4 46 7Q46 9 215 357T388 709Q391 716 416 716Q439 716 444 709Q447 705 616 357T786 7Q786 4 781 0H51ZM507 344L384 596L137 92L383 91H630Q630 93 507 344Z"></path></g><g data-mml-node="TeXAtom" data-mjx-texclass="ORD" transform="translate(833,0)"><g data-mml-node="TeXAtom" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D42B" d="M405 293T374 293T324 312T305 361Q305 378 312 394Q315 397 315 399Q305 399 294 394T266 375T238 329T222 249Q221 241 221 149V62H308V0H298Q280 3 161 3Q47 3 38 0H29V62H98V210V303Q98 353 96 363T83 376Q69 380 42 380H29V442H32L118 446Q204 450 205 450H210V414L211 378Q247 449 315 449H321Q384 449 413 422T442 360Q442 332 424 313Z"></path></g></g></g></g></g></svg></mjx-container>，然后将空间各点的坐标带入进行运算，即可得到各点的磁场分布。下面模拟的是位于两个平面的环形线圈产生的磁场。</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> pl</span><br><span class="line"><span class="keyword">import</span> numpy <span class="keyword">as</span> np</span><br><span class="line"><span class="keyword">import</span> mpl_toolkits.mplot3d.axes3d <span class="keyword">as</span> ax3d</span><br><span class="line"></span><br><span class="line"><span class="keyword">class</span> <span class="title class_">magnetic</span>:</span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">__init__</span>(<span class="params">self, current=<span class="number">1</span>, discretization_length=<span class="number">0.01</span></span>):</span><br><span class="line">        self.current = current</span><br><span class="line">        self.discretization_length = discretization_length</span><br><span class="line"></span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">wire</span>(<span class="params">self</span>):</span><br><span class="line">        radius = <span class="number">1</span></span><br><span class="line">        t = np.linspace(<span class="number">0</span>, <span class="number">2</span> * np.pi, <span class="number">40</span>)</span><br><span class="line">        self.cir_1 = np.array([radius * np.sin(t) + <span class="number">1</span>, radius * np.cos(t), np.zeros(<span class="built_in">len</span>(t))]).T</span><br><span class="line">        self.cir_2 = np.array([np.zeros(<span class="built_in">len</span>(t)), radius * np.sin(t), radius * np.cos(t) + <span class="number">1</span>]).T</span><br><span class="line"></span><br><span class="line">        npts = <span class="built_in">len</span>(self.cir_1)</span><br><span class="line">        self.IdL = np.array([-self.cir_1[c+<span class="number">1</span>]+self.cir_1[c] <span class="keyword">for</span> c <span class="keyword">in</span> <span class="built_in">range</span>(npts-<span class="number">1</span>)]) * self.current</span><br><span class="line">        self.r1 = np.array([(self.cir_1[c+<span class="number">1</span>]+self.cir_1[c])*<span class="number">0.5</span> <span class="keyword">for</span> c <span class="keyword">in</span> <span class="built_in">range</span>(npts-<span class="number">1</span>)])</span><br><span class="line">        self.IdL = np.vstack((self.IdL, np.array([self.cir_2[c+<span class="number">1</span>]-self.cir_2[c] <span class="keyword">for</span> c <span class="keyword">in</span> <span class="built_in">range</span>(npts-<span class="number">1</span>)]) * self.current))</span><br><span class="line">        self.r1 = np.vstack((self.r1, np.array([(self.cir_2[c+<span class="number">1</span>]+self.cir_2[c])*<span class="number">0.5</span> <span class="keyword">for</span> c <span class="keyword">in</span> <span class="built_in">range</span>(npts-<span class="number">1</span>)])))</span><br><span class="line"></span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">calculate</span>(<span class="params">self</span>):</span><br><span class="line">        B = []</span><br><span class="line">        x = np.linspace(-<span class="number">2</span>, <span class="number">2</span>, <span class="number">10</span>)</span><br><span class="line">        y = np.linspace(-<span class="number">2</span>, <span class="number">2</span>, <span class="number">10</span>)</span><br><span class="line">        z = np.linspace(-<span class="number">2</span>, <span class="number">2</span>, <span class="number">10</span>)</span><br><span class="line">        grid = np.meshgrid(x, y, z)</span><br><span class="line">        points = np.vstack(<span class="built_in">map</span>(np.ravel, grid)).T</span><br><span class="line">        <span class="keyword">for</span> r <span class="keyword">in</span> points:</span><br><span class="line">            r2 = r - self.r1</span><br><span class="line">            r25 = np.linalg.norm(r2, axis=<span class="number">1</span>)**<span class="number">3</span></span><br><span class="line">            r3 = r2 / r25[:, np.newaxis]</span><br><span class="line">            cr = np.cross(self.IdL, r3)</span><br><span class="line">            s = np.<span class="built_in">sum</span>(cr, axis=<span class="number">0</span>) * <span class="number">1e-7</span></span><br><span class="line">            B.append(s)</span><br><span class="line">        self.B = np.array(B)</span><br><span class="line">        </span><br><span class="line">        fig = pl.figure(figsize = (<span class="number">10</span>, <span class="number">10</span>), dpi = <span class="number">80</span>)</span><br><span class="line">        ax = fig.gca(projection=<span class="string">'3d'</span>)</span><br><span class="line">        ax.quiver(points[:,<span class="number">0</span>],points[:,<span class="number">1</span>], points[:,<span class="number">2</span>],self.B[:, <span class="number">0</span>],self.B[:, <span class="number">1</span>],self.B[:,<span class="number">2</span>],color=<span class="string">'b'</span>,length=<span class="number">0.3</span>,normalize=<span class="literal">True</span>)</span><br><span class="line">        ax.plot(self.cir_1[:, <span class="number">0</span>],self.cir_1[:, <span class="number">1</span>], self.cir_1[:, <span class="number">2</span>], <span class="string">'r'</span>, linewidth = <span class="number">2</span>)</span><br><span class="line">        ax.plot(self.cir_2[:, <span class="number">0</span>],self.cir_2[:, <span class="number">1</span>], self.cir_2[:, <span class="number">2</span>], <span class="string">'r'</span>, linewidth = <span class="number">2</span>)</span><br><span class="line">        ax.set_xlabel(<span class="string">'x'</span>)</span><br><span class="line">        ax.set_ylabel(<span class="string">'y'</span>)</span><br><span class="line">        ax.set_zlabel(<span class="string">'z'</span>)</span><br><span class="line">        pl.show()</span><br><span class="line">        </span><br><span class="line"><span class="keyword">if</span> __name__ == <span class="string">'__main__'</span>:</span><br><span class="line">    a = magnetic()</span><br><span class="line">    a.wire()</span><br><span class="line">    a.calculate()</span><br></pre></td></tr></table></figure><p><img src="homework9-2.png" alt=""></p><p>可以发现使用数值模拟可以很容易的计算出解析方法难以算出的磁场分布。下面使用常见的亥姆霍兹线圈进行模拟。</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">magnetic2</span>(<span class="title class_ inherited__">magnetic</span>):</span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">wire</span>(<span class="params">self</span>):</span><br><span class="line">        radius = <span class="number">1.5</span></span><br><span class="line">        t = np.linspace(<span class="number">0</span>, <span class="number">2</span> * np.pi, <span class="number">40</span>)</span><br><span class="line">        self.cir_1 = np.array([radius * np.sin(t), radius * np.cos(t), np.zeros(<span class="built_in">len</span>(t)) - <span class="number">1</span>]).T</span><br><span class="line">        self.cir_2 = np.array([radius * np.sin(t), radius * np.cos(t), np.zeros(<span class="built_in">len</span>(t)) + <span class="number">1</span>]).T</span><br><span class="line"></span><br><span class="line">        npts = <span class="built_in">len</span>(self.cir_1)</span><br><span class="line">        self.IdL = np.array([-self.cir_1[c+<span class="number">1</span>]+self.cir_1[c] <span class="keyword">for</span> c <span class="keyword">in</span> <span class="built_in">range</span>(npts-<span class="number">1</span>)]) * self.current</span><br><span class="line">        self.r1 = np.array([(self.cir_1[c+<span class="number">1</span>]+self.cir_1[c])*<span class="number">0.5</span> <span class="keyword">for</span> c <span class="keyword">in</span> <span class="built_in">range</span>(npts-<span class="number">1</span>)])</span><br><span class="line">        self.IdL = np.vstack((self.IdL, np.array([-self.cir_2[c+<span class="number">1</span>]+self.cir_2[c] <span class="keyword">for</span> c <span class="keyword">in</span> <span class="built_in">range</span>(npts-<span class="number">1</span>)]) * self.current))</span><br><span class="line">        self.r1 = np.vstack((self.r1, np.array([(self.cir_2[c+<span class="number">1</span>]+self.cir_2[c])*<span class="number">0.5</span> <span class="keyword">for</span> c <span class="keyword">in</span> <span class="built_in">range</span>(npts-<span class="number">1</span>)])))</span><br><span class="line">        </span><br><span class="line"><span class="keyword">if</span> __name__ == <span class="string">'__main__'</span>:</span><br><span class="line">    a = magnetic2()</span><br><span class="line">    a.wire()</span><br><span class="line">    a.calculate()</span><br></pre></td></tr></table></figure><p><img src="homework9-3.png" alt=""></p><p>可以发现两个线圈之间确实是近似的匀强磁场，这和已知的理论相符。下面随便画一个电流分布</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">magnetic3</span>(<span class="title class_ inherited__">magnetic</span>):</span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">wire</span>(<span class="params">self</span>):</span><br><span class="line">        self.a = np.array([[<span class="number">0.5</span>,<span class="number">0</span>,<span class="number">0.5</span>],[<span class="number">0.5</span>,<span class="number">0</span>,<span class="number">1</span>],[<span class="number">1.5</span>,<span class="number">0</span>,<span class="number">1</span>],[<span class="number">1.5</span>,<span class="number">0</span>,-<span class="number">0.5</span>],[<span class="number">0.5</span>,<span class="number">0</span>,-<span class="number">0.5</span>],[<span class="number">0.5</span>,<span class="number">0</span>,<span class="number">0.3</span>],[-<span class="number">0.5</span>,<span class="number">0</span>,<span class="number">0.3</span>],[-<span class="number">0.5</span>,<span class="number">0</span>,-<span class="number">0.5</span>],[-<span class="number">1.5</span>,<span class="number">0</span>,-<span class="number">0.5</span>],[-<span class="number">1.5</span>,<span class="number">0</span>,<span class="number">1</span>],[-<span class="number">0.5</span>,<span class="number">0</span>,<span class="number">1</span>],[-<span class="number">0.5</span>,<span class="number">0</span>,<span class="number">0.5</span>],[<span class="number">0.5</span>,<span class="number">0</span></span><br><span class="line">        ,<span class="number">0.5</span>]])</span><br><span class="line"></span><br><span class="line">        npts = <span class="built_in">len</span>(self.a)</span><br><span class="line">        self.IdL = np.array([-self.a[c+<span class="number">1</span>]+self.a[c] <span class="keyword">for</span> c <span class="keyword">in</span> <span class="built_in">range</span>(npts-<span class="number">1</span>)]) * self.current</span><br><span class="line">        self.r1 = np.array([(self.a[c+<span class="number">1</span>]+self.a[c])*<span class="number">0.5</span> <span class="keyword">for</span> c <span class="keyword">in</span> <span class="built_in">range</span>(npts-<span class="number">1</span>)])</span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">calculate</span>(<span class="params">self</span>):</span><br><span class="line">        B = []</span><br><span class="line">        x = np.linspace(-<span class="number">2</span>, <span class="number">2</span>, <span class="number">10</span>)</span><br><span class="line">        y = np.linspace(-<span class="number">2</span>, <span class="number">2</span>, <span class="number">10</span>)</span><br><span class="line">        z = np.linspace(-<span class="number">2</span>, <span class="number">2</span>, <span class="number">10</span>)</span><br><span class="line">        grid = np.meshgrid(x, y, z)</span><br><span class="line">        points = np.vstack(<span class="built_in">map</span>(np.ravel, grid)).T</span><br><span class="line">        <span class="keyword">for</span> r <span class="keyword">in</span> points:</span><br><span class="line">            r2 = r - self.r1</span><br><span class="line">            r25 = np.linalg.norm(r2, axis=<span class="number">1</span>)**<span class="number">3</span></span><br><span class="line">            r3 = r2 / r25[:, np.newaxis]</span><br><span class="line">            cr = np.cross(self.IdL, r3)</span><br><span class="line">            s = np.<span class="built_in">sum</span>(cr, axis=<span class="number">0</span>) * <span class="number">1e-7</span></span><br><span class="line">            B.append(s)</span><br><span class="line">        self.B = np.array(B)</span><br><span class="line">        </span><br><span class="line">        fig = pl.figure(figsize = (<span class="number">10</span>, <span class="number">10</span>), dpi = <span class="number">80</span>)</span><br><span class="line">        ax = fig.gca(projection=<span class="string">'3d'</span>)</span><br><span class="line">        ax.quiver(points[:,<span class="number">0</span>],points[:,<span class="number">1</span>], points[:,<span class="number">2</span>],self.B[:, <span class="number">0</span>],self.B[:, <span class="number">1</span>],self.B[:,<span class="number">2</span>],color=<span class="string">'r'</span>,length=<span class="number">0.3</span>,normalize=<span class="literal">True</span>)</span><br><span class="line">        ax.plot(self.a[:, <span class="number">0</span>],self.a[:, <span class="number">1</span>], self.a[:, <span class="number">2</span>], <span class="string">'black'</span>, linewidth = <span class="number">2</span>)</span><br><span class="line">        ax.set_xlabel(<span class="string">'x'</span>)</span><br><span class="line">        ax.set_ylabel(<span class="string">'y'</span>)</span><br><span class="line">        ax.set_zlabel(<span class="string">'z'</span>)</span><br><span class="line">        pl.show()</span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> __name__ == <span class="string">'__main__'</span>:</span><br><span class="line">    a = magnetic3()</span><br><span class="line">    a.wire()</span><br><span class="line">    a.calculate()</span><br></pre></td></tr></table></figure><p><img src="homework9-4.png" alt=""></p><p>I’m angry!</p><h2 id="致谢">致谢</h2><p>十分感谢 <a href="https://www.geophysik.uni-muenchen.de/~wack/teaching/Python/6_magwire.html">这份教程</a>，第二题思路和部分代码参考该教程，并进行了十分大的简化，原教程基本可以完美解决本问题。</p>]]>
    </content>
    <id>https://editst.com/2018/comput-phys-homework9/</id>
    <link href="https://editst.com/2018/comput-phys-homework9/"/>
    <published>2018-12-04T13:18:25.000Z</published>
    <summary>
      <![CDATA[<h2 id="5-13">5.13</h2>
<blockquote>
<p>Calculate the value of <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.025ex;" xmlns="http://www.w3.org/2000/svg" width="1.29ex" height="1ex" role="img" focusable="false" viewBox="0 -431 570 442"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D70B" d="M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"></path></g></g></g></svg></mjx-container> by using numerical integration to estimate the area of a circle of unit radius. Observe how your estimate approaches the exact value (3.1415926…) as the grid size in the integration is reduced.</p>
</blockquote>]]>
    </summary>
    <title>计算物理第九次作业</title>
    <updated>2020-11-30T15:06:44.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="转载" scheme="https://editst.com/categories/%E8%BD%AC%E8%BD%BD/"/>
    <category term="Google" scheme="https://editst.com/tags/Google/"/>
    <content>
      <![CDATA[<blockquote><p>转载自<a href="https://github.com/CT-ABT/Also-as-a-mainland-Chinese-why-do-I-resolutely-oppose-Google-s-dragonfly-project/blob/master/README.md">Github</a><br>作者 CT-ABT</p></blockquote><p>近日，一篇题为〈我是中国人，Google 的蜻蜓项目必须继续〉<sup>[1]</sup>的文章开始在 GitHub 上传播。文章作者强调说「百度竞价排名广告臭名昭著，很多人受骗上当、损失金钱、健康受损，甚至死亡」，并举例「魏则西」事件，称 Google 「返华」将有助于避免此类事件。该文作者同时列举了一个数据，称 Google 「返华」将拯救 551,615,600 名百度使用者，这些人——按照作者的话说——「因为对技术的不了解」，成为了「受害者」，而「他们理应有更好的技术选择！」</p><p>换言之，作者认为，Google 有责任、有义务让这 551,615,600 名百度使用者用得上 Google 搜索。</p><p>Google 「退出」中国到底是怎么一回事，以及：Google 是否应对 551,615,600 名无法使用 Google 服务者负责</p><span id="more"></span><hr><p>所以，事情真的是像那位作者说的那样吗？且不去说像 Google 搜索这样的免费服务，Google 本身没有任何义务去针对某一特定地区或人群提供或不提供服务，它就是宣布只向居住在山景城的 100 名富豪提供服务也完全是它的自由……关键是——Google 并没有禁绝这 551,615,600 名用户使用 Google 服务啊。</p><p>时间或许已经有点久了，但互联网是有记忆的，希望大家不要混淆视听。Google 的所谓「退出中国」事件，其核心内容只有：关闭 <a href="http://Google.cn">Google.cn</a> 的网页搜索服务，并将其重定向至 Google 香港，并附带：关闭位于中国大陆的谷歌搜索服务器。<sup>[2]</sup></p><p>这里面从来没有包括类似于「从今以后禁止中国大陆地区用户使用 Google 服务」的内容。实际上，直到今天，Google 面向中国大陆地区用户所提供的服务，几乎是与提供给美国用户的服务所等量的，除却那些尚处于试验阶段、各地的本地化并未做好、没有向全球推广的服务。甚至于，对于那些付费服务，只要你有一张 VISA 卡或者万事达卡，你也就可以使用。所以 Google 从未禁止过中国大陆人使用他们的服务。</p><p>事实上，Google「退出」中国后，其多数服务仍旧可以直接使用，如搜索、Gmail 等（剩余的少数如 YouTube 等本来就因为并非 Google 方面的原因而不可访问）。这些服务的访问有时会受到干扰，但并非完全无法访问。直至 2013 年春天，还只是「触发『敏感词』后被断开连接 90 秒」。Google 的所有服务的完全无法直接访问一事是发生在 2014 年的 5 月末尾<sup>[3]</sup>，这时距离其「退出」中国的声明已过去 4 年有余了，而且这一次的完全无法直接访问事件并未有任何有迹可循的触发点，并非是 Google 又做出了怎样的举动导致。</p><p>换句话说，Google 服务的在中国大陆地区完全无法直接访问一事，既并非由其于 2010 年所作出的「退出中国」声明所导致（其时间点也并非彼时），也不是出于 Google 这一方面的原因。将这 551,615,600 人不能使用 Google 服务的责任推给 Google, 是毫无逻辑的。Google 的服务无时无刻不在无差别地向所有人提供，这 551,615,600 人无法访问的原因根本不在 Google. 至于原作者不知因何情绪激动地喊出「你们这一小撮人剥夺……」的话语，我也只能反问，「我们这一小撮人」是谁，我们干了啥，我们有多大能量啊？？？</p><p>实际上，在全球 200 多个国家和地区中，完全彻底地无法访问 Google 所有服务的国家仅此一家。根据 Google 的透明度报告<sup>[4]</sup>，除了中国大陆地区之外，只有伊朗和刚果（布）的用户有限度地无法访问 Google 的部分服务。如下图所示，Google 将「无法访问」一事分为了 5 个等级，0 为完全畅通，5 为完全「无法访问」，这其中刚果（布）是 1, 伊朗是 2, 中国大陆地区是 5.</p><p><img src="http://hiberna.memorata.me/ud/global%20disruptions.png" alt=""></p><h2 id="「Google-『返华』有助于提高中国大陆地区用户的搜索质量、遏制『魏则西』类似事件的发生」的观点事实不成立、逻辑也不对">「Google 『返华』有助于提高中国大陆地区用户的搜索质量、遏制『魏则西』类似事件的发生」的观点事实不成立、逻辑也不对</h2><p>原作者所抛出的「Google 『返华』将有助于提高中国大陆地区用户的搜索质量、遏制『魏则西』类似事件的发生」的观点，既在事实上不成立，又没有逻辑。</p><p>事实上不成立之1：Google 尚未「离华」的时候，百度就已经是这样的百度了。在 2008 年和 2010 年都爆发过比较大的针对百度竞价排名广告的声讨。Google 是否「在华」并不能够影响百度的运作。</p><p>事实上不成立之2：百度的市占比并不怎么受到 Google 的「在华」与否的影响。在Google「退出」中国之前，百度也有过市占比达到 71.03% 的高光时刻（Aug 2009），在 Google 「退出」中国之后，百度也有过跌至 50.69% 的时候（Apr 2014）。对比 Google 宣布「退出」中国的 2010 年三月和如今的 2018 年十月，百度的市场份额不过是从 55.57% 变为了 65.05%, 而纵观从 statcounter 收录百度以来（Mar 2009）其市占比的变化，大多数时间里都是在 50% 以上、80% 以下的范围内来回浮动。换句话说，百度在中国大陆的搜索引擎市场从来就占据主导地位，与 Google 的「在华」与否并不构成怎样的相关性。</p><p>事实上不成立之3：「魏则西」事件的责任主要在百度这一个搜索引擎吗？！「魏则西」事件诚然是一个悲剧，但是你们不去质疑为什么「莆田系」医院可以光明正大地在中国大陆合法存在、你们不去质疑为什么没有对虚假广告的监管机制与法律法规约束，你们去谴责一个搜索引擎收了钱便帮人家投放广告？并且寄托希望于 Google——另一个搜索引擎来遏止这样的情况？那么很遗憾，Google 也允许广告主在搜索结果中投放广告。什么，你说百度没有明确标识出「这是广告」？那么很遗憾，Google 也没有，不过是在搜索结果的链接左侧写了一个小小的绿色的「AD」两个字母。</p><p>倘若我们有足够有力的监管机构能够制止「莆田系」或者任何类似的不当医疗机构招摇撞骗，那么「魏则西」事件还会发生么？（且不去说，这一事件中所涉及的疗法并非「害人」疗法，在美国的临床试验中所获得的数据是与其它疗法效果差不多或有稍微的提高。这顶多可以称得上是「骗钱」的疗法。如果你选择相信是这种疗法把魏则西害死了，那么恭喜，你被带节奏了。）倘若我们对投放广告有成熟的法律法规和监管机构，那么「魏则西」事件还会发生么？你们不去磕各路神医妙院为何能够资质齐全地在中国大陆开设、你们不去磕为何没有（或者有却没有落实）针对投放广告的法律与标准，你们纵容一家家神医妙院可以以合法的资质办院、以合法的途径去投放广告，然后你们大喊：百度害死了魏则西、百度害死了魏则西。说实在的，我只能说，你们非蠢即坏。</p><p>然后你们还喊：Google 能救魏则西？？？你们把 Google 当什么了？？？Google 因为假药公司投放广告而被联邦政府控告最后以巨额罚款达成庭外和解的事情，就这么忘了么？Google 抄袭了小作坊的项目后将自己的同类项目放入搜索首页位置并屏蔽原本的小作坊项目，使这些小作坊瞬间没了活路的事情，就这么忘了么？Google 不操纵搜索结果？虽然没有可靠证据，但在 2016 年大选中，川普的粉丝们可不这么认为。</p><p>Google 和百度都是商业公司，商人逐利，天经地义。区别就在于美国的法律真的会去限制 Google 的不当行为。Google 真的会因为它的不当行为而受到惩罚（且尽管如此，Google 仍有令人怀疑的不当行为）。而我们呢？我们甚至在某些方面连相关法律都没有，或者有了却无力落实。</p><p>不去想着从立法、监管和执法的层面来改善这一局面，却将希望寄托于另一家搜索引擎，这样的逻辑也是令人陶醉。</p><h2 id="插播：「电车问题」中正确的做法就是什么都不做（这段虽为插播，但尤为重要）">插播：「电车问题」中正确的做法就是什么都不做（这段虽为插播，但尤为重要）</h2><p>〈我是中国人，Google 的蜻蜓项目必须继续〉的作者在讨论完魏则西事件并莫名其妙地谴责完「我们这一小撮人」的某种我自己都不知道指的是什么的行为之后，就抛出了一个著名的「电车问题」。并声称，他会选择轧死一旁的一个人，来「拯救」正前方的五个人。</p><p>说实在的，我觉得无比恐怖的就是，在 2018 年的今天，我们之中仍然有人认同在电车问题中轧死一人的选择，他们仍然认同「For the Greater Good」，并认为这样的想法无比正确。这让我不禁思考，智人这个物种是不是真的能够从它的历史中汲取教训。历史上「为了更大的利益」的事件有很多，像各种种族屠杀，大部分就是打着「为了更大的利益」的旗号，像乌克兰的大饥荒，自然也是为了全苏联的更大的利益。还有很多我连提都不愿意提的事情，不都统统是为了更大的利益么？就回顾刚刚过去的 20 世纪，那些信奉「为了更大的利益」的国家们，最后不都是谁的利益都没有得到保障，被全世界甩在后面了么。</p><p>多的不说，我只想用一个例子来完成对这一观点的反驳：倘若这些人真的认同「为了更大的利益」的观点，并且真的认为五条人命比一条人命更重要的话，那么这些人就应该立即签署器官捐献协议，去医院做好配型，确定好受捐方以后立即自杀——因为你全身上下的各个器官肯定能够拯救不止五个人，他们可是在生死边缘挣扎着等待器官捐赠的无辜生灵啊！为了更大的利益，你不应该去做点什么吗？希望让更多人受益？你现在就可以做到！请不要光说不做，也不要慷他人之慨。</p><h2 id="那么，Google-的这次「返华」之举，错在哪？">那么，Google 的这次「返华」之举，错在哪？</h2><p><strong>错在其「妥协」的思想</strong>。产生了「妥协」的思想是最要不得的，其他的具体行为不过是「妥协」思想的实践罢了。</p><p>所以我在这里并不想讨论迎合审查、15 分钟删条目、用户一搜敏感词条就上报相关部门等等等等的一系列具体化措施是对是错。实际上，倘若某一国家明文规定了在该国提供搜索服务就要做到以上几点的话，那么你若要进入这一国家提供搜索服务，就应该遵从该国的法律要求，去做到这些。也就是所说的「恶法亦法」。对于「恶法」，你可以默默遵守，可以在遵守的同时表示反对，可以组织活动去力推相关法律的废止，但只要你在某国营业，那么遵守该国法律是无可厚非的。同时 Google 也是这么做的，无论是在俄国还是在欧盟，这些地区依据其法律所提出的对搜索结果的过滤要求，Google 都遵守了——或者都受到惩罚了。所以倘若 Google 真的做出了「我要进入某国市场，但是我就是不遵守其法律法规」的举动，那才真是耍流氓的行为。正确的做法是：要么边遵守、边反对，要么不进入、不遵守。</p><p>那么为什么我反对 Google 的「返华」之举呢？这难道不是你说的「边遵守、边反对」的做法吗？</p><p>并不然。因为这并非是对「恶法」的遵守，而是对「无法」的妥协。</p><p>这是因为中国大陆的审查机制也好、对敏感信息的采集及上报流程也好，从来没有具体地落实到法律层面上来。莫说法律，连成文的规定都没有。今天说你这样做不对，你需要整改，明天又说你那样不对，你需要整改，而对于到底哪些内容是触碰底线的，对不起，人家不告诉你，让你自己去猜。但是只要没能揣测对「上意」，你就惨了。过去几个月里多家网站纷纷「自裁」式地关站整顿，不就是很好的例子么？某家做电子产品测评的自媒体仅仅因为一处非常小的措辞（因疏忽而）处理的不当，就处罚、开除员工并声泪俱下地发表声明乞求原谅，那惶惶不可终日的样子，各位可还记得？Google 被泄露出来的预备的敏感词名单中有「人权」和「诺贝尔」等词，而前不久华为爆出来的基于系统底层的敏感词列表上甚至有「博士」这样的非常中性的词汇。如此荒唐可笑的事情，诸位难道认同么？</p><p>所以当审查机制不透明，敏感词列表没有定数的时候，各家便只能自己揣测「上意」，争相加码自我审查以防触碰「底线」。可是，只要你不天天只转发《××××》的文章并把 ××× 的头像、头条放在首位，你都有可能触碰那条浮动不定的「底线」——因为你根本不知道它在哪里。</p><p>而倘若一旦开始了对「无法」的妥协，那就只有一步一步地妥协下去。这是没有头的。连我们古人都知道，以地事秦，有如抱薪救火，薪不尽，火不灭。</p><p>请回想一下，放五年前，倘若你来到你附近路边的报刊亭，看到那些报刊杂志摆在那里的样子，然后再对比一下倘若你今天走到你附近路边的报刊亭，看到那些报刊杂志的样子……还有五年前门户网站的首页和今天门户网站的首页的对比……还有五年前你的路边还没有出现的那些如今到处可见的横幅标语、巨幅宣传画……很吓人，对不对？你也知道这是不正常的，对不对？但是事情怎么就糟糕到这样的局面了呢？就是逐步妥协的结果。</p><p>同样地，我还想请大家回望一下我们人类这短短的文明史，有哪次，妥协政策带来了好的结果？20 世纪里的那些持有绥靖政策的国家，哪个不是被打得首都都丢了或者差点首都都丢了？</p><p>一旦开始了妥协，对方不会停止索求，你也停不下来去满足。</p><p>继续想下去，诸位不妨想想看，我们当下所抱怨（或者甚至不敢抱怨）的这些不公或者不合理或者匪夷所思的存在，又有哪些不是因为一个一个像你我一样的普通人对其妥协所造成的？可以说，这些无理的存在之所以存在，我们每一个人，都有责任。</p><p>因此，反对 Google 对不透明规则的妥协，是我反对「蜻蜓」项目的根本原因。</p><h2 id="何况，即使做出没有底线的妥协，Google-也不见得能够在华健康成长">何况，即使做出没有底线的妥协，Google 也不见得能够在华健康成长</h2><p>各位难道忘了 Google 为何做出「退出」中国的举动了吗？<sup>[5]</sup>各位难道忘了「妈妈和儿子」的事情了吗？<sup>[6], [7]</sup> Google 2006 年「入华」之后难道不是在李开复的带领下持续对中国大陆地区的各种莫名其妙的要求不断妥协吗？可是依旧遭人构陷啊。而且这构陷的手段是如此拙劣与下作。</p><p>而且诸位应该记得，那还是 2009 年，中国互联网的言论鼎盛时段。对比当下的互联网环境，诸位觉得，这次 Google 要做出怎样的妥协方能「在华」生存下去呢？</p><p>而且诸位为何就不问一问，Google 没有做出错的事情，Google 只是就那么在那里，中国大陆地区的用户就渐渐地不可访问了，这事儿的根源在 Google 吗？责任在 Google 吗？你们为什么可以理直气壮地要没有过错的一方—— Google 去主动做出妥协？</p><h2 id="既然我反对「妥协政策」，那我认为-Google-应该怎么做？">既然我反对「妥协政策」，那我认为 Google 应该怎么做？</h2><p>很简单，什么都不做。维持现状。</p><p>也即：<strong>不合作</strong>。</p><p>「不合作」不是让你扛起反抗的大旗，去抗争，去改变。不是的。「不合作」是一条底线，也即：我认为这件事情不对，那么我就不去做。无论为了什么，我都不会去妥协。</p><p>实际上，「不合作」的理念不仅适用于 Google, 也适用于我们每一个人。如果我们都能从一开始就对日渐臃肿的国产 App 说不，那么今天或许国产 App 就是另外一副模样。如果我们都对百度强推百度网盘客户端的行为说不，那百度或许就会重新考虑他的这一政策。如果我们从一开始就坚守微信是休闲聊天软件的定位，那么如今为「微信用于工作」这一噩梦般使用场景所缠身的诸位就能得到解脱……</p><p>所以不合作的实践方法很简单：对不认同的事情，不与其妥协。当大家都纷纷卸载某款臃肿的国产 App 的时候，这个 App 就会面对要么改变、要么灭亡的前景；当大家纷纷弃用百度网盘的时候（或者通过其他方式比如打包成小文件来上传下载以绕过其对客户端的强制推广），百度或许就会考虑一下它的推广策略。而如果大家对于非得加微信才能领取开箱密码的某些快递集体抵制，就是不加其微信，也不开箱取货，那么这家快递公司定会立竿见影地改变其强制推广的策略。</p><p>事情就是这么简单，我们需要做的唯一的事情就是：不去做，不去妥协，不去迎合。其他的什么都不用做，不需要去喊口号，不需要去呼吁，不需要去斗争，一切都不需要。只需要静静地「不合作」，事情就可以办成。「不合作」并非是低三下四、一味忍让的姿态，而是对「底线」的坚定不移的坚守。</p><p>所以反过来说，我们今天所面对的种种不合理的存在——请不要给自己找借口——无一例外地都是因为我们每一个人的一次又一次地让步与妥协。那句话是怎么说的来着？对了，雪崩的时候，没有一片雪花是无辜的。</p><h2 id="为了-Google-的利益吗？其实也是无稽之谈">为了 Google 的利益吗？其实也是无稽之谈</h2><p>又有人说，Google 的「返华」之举纯粹是为了 Google 的利益，Google 需要中国大陆市场。</p><p>真的是这样吗？其实又是无稽之谈。</p><p>首先，如前文所说，Google 从未「离华」，所以严格意义上并没有「返华」之说。我们看看 Google 现在的在华状态如何：</p><ul><li><p>有注册公司（咕果）</p></li><li><p>有两个分部（京沪）</p></li><li><p>有广告业务</p></li><li><p>有部分可用服务（地图、翻译、代码实验室）</p></li><li><p>可以获奖（2016 教育部最佳合作伙伴）</p></li><li><p>可以举办活动（开发者大会）</p></li><li><p>可以上线应用（文件极客、猜画小歌）</p></li></ul><p>可以看到，Google 可以自由地「在华」活动，其主要的营收来源——广告——亦未受影响。所以我实在看不出其「返华」之举——在中国大陆地区上线一款迎合有关部门的黑箱审查的搜索应用并按照相关部门进行敏感词过滤、用户搜索信息上报——会给 Google 带来怎样的利益。如果是急切地想从搜索中卖广告赚钱的话，那不仅已经沦为另一个百度，也完全没有可行性——Google 注定在中国大陆地区的搜索引擎市场中占据不到主流地位——在上一个更加开放的时代它没有做到，如今应该更为不可能。</p><p>而且，作为在中国大陆合法注册的公司，Google 完全可以在维持现状的前提下进一步提高在华营收，继续推广其广告服务，或者像近期以来所尝试的上线应用等行为，都可以为其扩大市场，带来收入。Google 完全可以不用妥协以现在的样子就能够进一步进入中国市场。而最近颇受争议的这股「蜻蜓」风波中所涉及的那些内容几乎看不到对其增加营收有何助益。</p><p>什么，你说卖手机？在中国大陆当前的消费市场以 950 美元的价格与同等参数的 450 美元的一堆旗舰国产机去竞争吗？这真是搞笑。而且 Google 的硬件部分在全球其他地区也并未完全铺开——甚至很多产品目前仍只专注于北美（甚至只专注于美国）。这一点与苹果的全球贩卖的策略完全不同。以苹果的心态来揣度 Google 是方向错误的。Google 并不亟需在中国大陆推进其硬件的销售。</p><p>所以这一点是我最想不通的——Google 为何铁了心要做出如此退让的妥协？</p><h2 id="最后：「一小撮人」到底是谁，既：什么是-Google-的生态、谁又是中国大陆地区的-Google-服务使用者">最后：「一小撮人」到底是谁，既：什么是 Google 的生态、谁又是中国大陆地区的 Google 服务使用者</h2><p>在〈我是中国人，Google 的蜻蜓项目必须继续〉一文中，原作者最为暴露出其马脚的一句话便在于那句气急败坏地喊出「你们一小撮人……」那里。</p><p>「我们一小撮」、「边缘人」指的是谁呢？</p><p>纵贯其全文，不难推测，该作者想说的是「我们一小撮」「整天拿 Google 去搜索敏感词」的「边缘人」。对吧？</p><p>然而这却活生生地暴露出了原作者即对 Google 的服务生态不了解，也对中国大陆地区的 Google 用户不了解。其原文中这一既荒谬又可笑的推断没有丝毫站得住脚的成分。</p><p>Google 的服务并非「搜索」一项，而是一个完整的生态。作为一个重度用户，我从 2005 年开始使用 Google 的另一项服务——Gmail, 并从此陷入 Google 的生态圈不可自拔。并且我自认为，Google 比起 Apple, 为用户营造了更好、更自由的生态环境。以我个人为例，除却 Google Search 外，我还严重依赖 Gmail, Google Docs, Google Calendar, Google One (付费), YouTube (付费订阅 Premium 家庭套餐), Google Voice (付费), Google Play (严重氪金), Google Play Music (除订阅外也有很多购买), Google Cloud Platform, Google Photos 等等，并且我至今没有找到 Google Reader 的完美的替代品。我使用 Google 的服务来帮助我的日常工作与生活，它们是我每天生活的必须，并且这也是世界上绝大多数国家中的许多人使用 Google 的目的。根本不是原作者所推想的那种仅限于「热衷于搜索敏感词」的「边缘人」用来「搜索敏感词」的工具。如果你认为 Google 的服务是可以避开的，并举出一串的替代品，那就真的说明了你对国际互联网目前的状况已经十分不了解了。实际情况是，完整的 Google 服务已经与全世界绝大多数正常地区的人民的工作、生活密不可分。</p><p>只局限于「墙」内的用户是无法想象目前的国际互联网是有多么地依赖 Google Docs 来完成协作办公。只局限于「墙」内的用户恐怕无法想象，你们在「B」站上所热爱的那些每天全职为你们创作视频的「Up 主」们，他们的主要收入来源其实是 YouTube 而非「B」站。很多「B」站上的全职「Up 主」们唯有通过把视频搬运到 YouTube 才能获得可以维持其作为一名自由职业者的收入，尽管你们觉得在「墙」内的观众数量是 YouTube 上的数倍甚至数十倍，然而即使事实如此，「B」站能够提供给「Up 主」们的广告收入却一般只有 YouTube 上的 1/10 甚至更低。</p><p>我们有理由担心，随着 Google 一步步地无底线地妥协，或许 Google 会同意进行一次严格的锁区行为，并进而禁止中国大陆地区用户使用尚未阉割、特供提供的其他 Google 服务——而且以 Google 的技术实力，想要分清你到底是不是中国大陆人那绝对是秒秒钟的事情，无论你如何伪装都没用。</p><p>这时候我完全可以借用某些人特别愿意打的感情牌：这些使用 Google 服务的人「都是和你我一样的普通人，有家人、朋友和爱人」，他们不过是出于自己工作的需要而去使用 Google 的服务，「他们不过是想要和全世界其他人一起使用 Google 的服务啊」——假如我也煽情地说的话——他们又有什么错？你们又如何能够保障他们不会成为 Google 一步步妥协政策下的牺牲品？当他们的生活因为 Google 的妥协政策无以为继的时候，谁又来保障他们的权益呢？</p><p>当然，信奉「For the Greater Good」的人并不会在乎，他们只看重他们所假想出来的「更大的利益」，转动电车去轧死一人有什么，为了集体饿死几百万人又有什么。在「更大的利益」面前，只有一件事情他们不会去做，那就是自杀，然后把器官捐献给亟需器官移植的人。</p><p>（最后，<strong>利益相关</strong>：我<strong>不是</strong>开发者，请不要攻击我说什么只有一个 repository 的无名小号，是因为对方在 GitHub 上 Po 文，我才来此撰文的。）</p><h2 id="参考链接">参考链接</h2><p>[1] ithinco．我是中国人，谷歌的蜻蜓项目必须继续 [EB/OL]．：<a href="https://github.com/ithinco/i-am-chinese-the-dragonfly-must-go-on">https://github.com/ithinco/i-am-chinese-the-dragonfly-must-go-on</a>, 获取于 2018 年 12 月 3 日．</p><p>[2] Drummond, David. 关于谷歌中国的最新声明 [EB/OL].: <a href="https://www.google.com/press/new-approach-to-china/update.html">https://www.google.com/press/new-approach-to-china/update.html</a>, retrieved at 3 December 2018.</p><p>[3] 维基百科编者．谷歌退出中國大陸事件 [G/OL]．：<a href="https://zh.wikipedia.org/w/index.php?title=%E8%B0%B7%E6%AD%8C%E9%80%80%E5%87%BA%E4%B8%AD%E5%9B%BD%E5%A4%A7%E9%99%86%E4%BA%8B%E4%BB%B6&amp;oldid=51909673">https://zh.wikipedia.org/w/index.php?title=谷歌退出中国大陆事件&amp;oldid=51909673</a>, 获取于 2018 年 12 月 3 日．</p><p>[4] Google Inc. <em>Google Transparency Report: Traffic and Disruptions</em> [R/OL].: <a href="https://transparencyreport.google.com/traffic/overview">https://transparencyreport.google.com/traffic/overview</a>, retrieved at 3 December 2018.</p><p>[5] 月光博客．Google 退出中国内幕 [EB/OL]．：<a href="http://www.kejilie.com/williamlong/article/B3ENfq.html">http://www.kejilie.com/williamlong/article/B3ENfq.html</a>, 获取于 2018 年 12 月 3 日．（注：这篇博文在月光博客上发出后作者进行了大篇幅的主动删减，现在在其原博客上可看到的内容已经不多了，故此处提供一个没有删减的版本。）</p><p>[6] 可能吧．Google，你不应该服务中国大陆 [EB/OL]．：<a href="https://kenengba.com/post/1232.html">https://kenengba.com/post/1232.html</a>, 获取于 2018 年 12 月 3 日．</p><p>[7] cksle．用数据说话，看 Google 怎样被陷害 [EB/OL]．：<a href="https://groups.google.com/forum/#!topic/fwolf-webtemp/yuCRyakUHpw">https://groups.google.com/forum/#!topic/fwolf-webtemp/yuCRyakUHpw</a>, 获取于 2018 年 12 月 3 日．</p>]]>
    </content>
    <id>https://editst.com/2018/google-dragonfly/</id>
    <link href="https://editst.com/2018/google-dragonfly/"/>
    <published>2018-12-04T04:42:33.000Z</published>
    <summary>
      <![CDATA[<blockquote>
<p>转载自<a href="https://github.com/CT-ABT/Also-as-a-mainland-Chinese-why-do-I-resolutely-oppose-Google-s-dragonfly-project/blob/master/README.md">Github</a><br>
作者 CT-ABT</p>
</blockquote>
<p>近日，一篇题为〈我是中国人，Google 的蜻蜓项目必须继续〉<sup>[1]</sup>的文章开始在 GitHub 上传播。文章作者强调说「百度竞价排名广告臭名昭著，很多人受骗上当、损失金钱、健康受损，甚至死亡」，并举例「魏则西」事件，称 Google 「返华」将有助于避免此类事件。该文作者同时列举了一个数据，称 Google 「返华」将拯救 551,615,600 名百度使用者，这些人——按照作者的话说——「因为对技术的不了解」，成为了「受害者」，而「他们理应有更好的技术选择！」</p>
<p>换言之，作者认为，Google 有责任、有义务让这 551,615,600 名百度使用者用得上 Google 搜索。</p>
<p>Google 「退出」中国到底是怎么一回事，以及：Google 是否应对 551,615,600 名无法使用 Google 服务者负责</p>]]>
    </summary>
    <title>同样作为中国大陆人，我为什么坚决反对「蜻蜓」项目</title>
    <updated>2018-12-04T04:42:33.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="Ingress" scheme="https://editst.com/categories/Ingress/"/>
    <category term="Ingress" scheme="https://editst.com/tags/Ingress/"/>
    <content>
      <![CDATA[<p>不知不觉又到了年底了，是一个适合写年终总结的日子。由于天气渐冷，逐渐咸鱼（本来就是），估计也不会做什么新的拼图了，就总结一下入坑两年多以来做过的哪些拼图吧，以此纪念一下自己的 <a href="https://www.ingress.com">Ingress</a> 岁月。</p><p>首先还是想要感谢这个游戏，没有你的话我估计不可能走过这么多路，认识这么多人，发现每一座城市不一样的那些风景。虽然这个垃圾游戏越搞越凉，但还是不会弃坑的吧。</p><p>然后要感谢这几年认识的这些大佬们，虽然我很菜，但是大佬们这么强，<s>似乎也能得到一点奇怪的安慰</s> 我还是很菜。写了很多 ID，还是不放出来了吧。</p><p>下面就是那些年我做过的拼图了，大体按照地理位置分类，没有严格按照时间（可以自行 ping 我查看）。</p><p><strong>拼图名字不保证完全正确，仅供参考</strong></p><span id="more"></span><h2 id="上海">上海</h2><p>借着公费旅游的机会，去了两次上海，做了不少任务。不愧是一线城市，就是棒啊。</p><p>分别为 5 km s - Shanghai，Darkened Lujiazui，Welcome to RSH，The Bund in the rain，像素biu~兔子，Daydreaming SH，黄昏下的月台。</p><p><img src="shanghai_1.jpg" alt=""></p><p><img src="shanghai_2.jpg" alt=""></p><p><img src="shanghai_3.jpg" alt=""></p><h2 id="苏州">苏州</h2><p>既然来了上海，隔壁就是苏州，何不去游一圈看看苏博？只做了一套任务，别说了可否一战。</p><p><img src="suzhou.jpg" alt=""></p><h2 id="广州">广州</h2><p>去广州和深圳的单独写了篇<a href="https://editst.com/2019/guangdong-journey/">游记</a>，之后又去了一次广州，顺手做了一套不错的拼图，广州24小时不打烊。</p><p><img src="guangzhou.jpg" alt=""></p><h2 id="武大四季">武大四季</h2><p>分别为春夏秋冬，感谢佳能学长提供原图并组织申请任务。</p><p><img src="whu_1.jpg" alt=""></p><p><img src="whu_2.jpg" alt=""></p><h2 id="武汉">武汉</h2><p>分别为 IFS3.0，辛亥革命，江汉关，IFS2.0，珞樱，樱顶，武大校名，IFS1.0，天际线</p><p><img src="ifs_3.jpg" alt=""></p><p><img src="wuhan_1.jpg" alt=""></p><p><img src="wuhan_2.jpg" alt=""></p><p><img src="wuhan_3.jpg" alt=""></p><p><img src="wuhan_4.jpg" alt=""></p><p>之后参加了 IFS4.0，终于拿到了官方的牌子，顺手做了一下自己申的纪念任务（图来自小清姐）。</p><p><img src="ifs_4.jpg" alt=""></p><h2 id="长沙">长沙</h2><p>分别为橘子洲头和天心阁，感谢前者让我在橘子洲走了两圈并且遇到了长沙菊苣<a href="http://changeless.me">头子</a>。</p><p><img src="changsha_1.jpg" alt=""></p><p>之后于19年夏又去了一次长沙，主要是为了看一下终于开放的湖南省博，不知为何又做了一套拼图。得到的结论就是长沙的任务都好坑！！！慎做！！！</p><p><img src="changsha_2.jpg" alt=""></p><h2 id="成都">成都</h2><p>分别为 Hi 成都，文殊院，绘系列，风之诗与旅人，锦里，人间成都，doge，川大表情包，熊猫黑牌。</p><p>怀念成都的美食和一切，有缘一定再会！</p><p><img src="hichengdu.jpg" alt=""></p><p><img src="chengdu_1.jpg" alt=""></p><p><img src="chengdu_2.jpg" alt=""></p><h2 id="重庆">重庆</h2><p>分别为龙头寺公园，明日香，重庆大学。</p><p>重庆给我留下印象最深的就是亲爱的重庆北站，有缘也不要去了吧。</p><p><img src="chongqing_1.jpg" alt=""></p><p><img src="chongqing_2.jpg" alt=""></p><h2 id="杭州">杭州</h2><p>分别为 Adventure in Song Dynasty，浙大校庆纪念任务，月下雷峰影片，杭州 MD 纪念任务，梵高印象，博物馆找兔兔，西湖遇上火烧云，西湖寻龙。</p><p>这是第一次为了玩游戏去一个地方，不过意外发现冬天的杭州也别有风味，希望还能再会。另外特别感谢雷峰塔任务帮助我在半夜绕西湖两圈（并且白天发现做错了又绕了一圈）。</p><p><img src="hangzhou_1.jpg" alt=""></p><p><img src="hangzhou_2.jpg" alt=""></p><p><img src="hangzhou_3.jpg" alt=""></p><h2 id="南京">南京</h2><p>分别为你离开了南京 从此再没人和我说话，（未找到名字），起风了 妄想重返，你的名字。</p><p>五一假期去的，好多地方没能去看，未免遗憾。</p><p><img src="nanjing_1.jpg" alt=""></p><p><img src="nanjing_2.jpg" alt=""></p><h2 id="大连-烟台">大连 &amp; 烟台</h2><p>去大连 MD 的路上做的，分别是看我资料干啥，四时野趣，星海广场看大桥，烟台 IFS。</p><p><img src="dalian.jpg" alt=""></p><p><img src="yantai.jpg" alt=""></p><h2 id="青岛">青岛</h2><p>入坑时最早的任务和第一套拼图，然而因为手机没电和 too young to take 充电宝，所以至今没有完成（咕咕咕）。</p><p><img src="qingdao.jpg" alt=""></p><h2 id="Mission-Day">Mission Day</h2><p>严格来讲不算拼图，分别是济南和大连，也是我唯二参加的 MD。吹爆大连的任务图标！</p><p><img src="md_jinan.jpg" alt=""></p><p><img src="md_dalian.jpg" alt=""></p><p>感谢读到这里，期待新的一年能有更好的记忆，祝好！</p>]]>
    </content>
    <id>https://editst.com/2018/ingress-banners/</id>
    <link href="https://editst.com/2018/ingress-banners/"/>
    <published>2018-12-01T17:15:09.000Z</published>
    <summary>
      <![CDATA[<p>不知不觉又到了年底了，是一个适合写年终总结的日子。由于天气渐冷，逐渐咸鱼（本来就是），估计也不会做什么新的拼图了，就总结一下入坑两年多以来做过的哪些拼图吧，以此纪念一下自己的 <a href="https://www.ingress.com">Ingress</a> 岁月。</p>
<p>首先还是想要感谢这个游戏，没有你的话我估计不可能走过这么多路，认识这么多人，发现每一座城市不一样的那些风景。虽然这个垃圾游戏越搞越凉，但还是不会弃坑的吧。</p>
<p>然后要感谢这几年认识的这些大佬们，虽然我很菜，但是大佬们这么强，<s>似乎也能得到一点奇怪的安慰</s> 我还是很菜。写了很多 ID，还是不放出来了吧。</p>
<p>下面就是那些年我做过的拼图了，大体按照地理位置分类，没有严格按照时间（可以自行 ping 我查看）。</p>
<p><strong>拼图名字不保证完全正确，仅供参考</strong></p>]]>
    </summary>
    <title>Ingress 拼图及其他</title>
    <updated>2020-06-14T02:55:13.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="转载" scheme="https://editst.com/categories/%E8%BD%AC%E8%BD%BD/"/>
    <category term="从日云" scheme="https://editst.com/tags/%E4%BB%8E%E6%97%A5%E4%BA%91/"/>
    <category term="演讲" scheme="https://editst.com/tags/%E6%BC%94%E8%AE%B2/"/>
    <content>
      <![CDATA[<p>2013届的同学们：</p><p>今天是你喜庆的日子，是你们的成人礼，是你们人生的一个新的开端。</p><p>你们将披戴上一副庄重的桂冠和礼袍，那表示你们成为了“学士”。在中国传统的语言中，成为“士”，那就是获得了一种与众不同的身份。“学以居位曰士”，“以才智用者谓之士”。士有各种，而“学士”，就是以学问和才智获得“士”的资格，受人尊重的人。</p><p>所以，我衷心地祝贺你们，祝贺你们十几年求学终成正果！</p><p>昨天，我儿子通过博士答辩，完成学业，也与你们一样，在这个毕业季走出校园，走向社会。</p><p>我对他的担忧与期望，也就是对你们的担扰与期望。</p><p>我是他的父亲，也是你们的丛大大。</p><p>你们今天毕业走出校门，明天就是社会大学的开学典礼。人生就是一次次的毕业与开学，但是，只有这次毕业与开学是人生最重要的转折点。<br>与今后的漫长旅程相比，你以前的学习生活只是学步而已；与即将开场的人生大戏相比，此前的学习生活只是序幕而已。</p><p>你们即将进入的这个社会，是一个丰富而精彩的人生舞台，你们将在那里实现自己的价值，享受你们的人生。但同时，它也是一个险恶的江湖，污浊的泥潭。</p><span id="more"></span><p>这江湖深不可测，远非你们所能想像。你从此闯荡江湖，就像你当初学步一样。这江湖重新塑造你们的力量，你们可能还没有足够的估计。你如今要义无返顾地闯进去了，却不知道它意味着什么。</p><p>这些天，怀着几分激动几分惆怅的你们，都在憧憬着自己灿烂的未来，美好的人生。你们听到的，都是美好的祝福和高调的期待与嘱托。</p><p>但作为家长，作为老师，作为你们的丛大大，我却怀着几分忐忑，只能讲些适合大多数同学的低调的临别赠言。</p><p>先秦时代有一个思想家杨朱，有感于人生歧路重重，歧路之中还有歧路，人很容易迷失，于是放声大哭。竹林七贤之一的阮籍也曾面对歧路，大哭而返。</p><p>人生多歧路，这是人的宿命。如果严肃对待人生，不得不一次次面对歧路面前的困惑与焦虑。人生就是无数的选择。从人生终极目标的选择，大的发展方向的规划，直到日常生活中每一个细节的选择、迈出每一步的选择。你的选择构成你的一生。</p><p>正确的一生，还是错误的一生。</p><p>以往，家长、社会、学校几乎为你规划了一切。从今以后，你要独立选择你的生活道路。</p><p>人生之路只能一个人走下来，没有依傍，没有导师。哪怕你一直在随大流，那也是你的选择。</p><p>存在主义哲学家萨特曾在80年代的中国风行一时，如今很少有人关注他了。但他有一句话还是需要提起的，“人是自我选择的”。人选择成为自己所是的，并且要对自己的选择负全部责任。</p><p>在这世界上，每个人都是独一无二的。你在这个世界上的价值，就在于你与众不同。所以，每个人首要的选择，是应该成为你自己。</p><p>不要别人做梦你也跟着做梦，被别人忽悠着做梦，做与别人同样的梦。每个人都有自己的梦。</p><p>要选择成为你自己，意味着不断地超越自己。你需要不断地反思自己，拷问自己，为自己树立至高的标准，追求最高的境界。</p><p>在这个毕业季，同学们听到最多的祝愿就是成功、幸福，但没有正确的价值准则，成功就可能是一剂毒药；而幸福如果抽空了公共意蕴，就不应该是政管人的追求。因为我们政管人属公，我们是天生的社会政治动物。</p><p>我们的人生与这个社会的命运息息相关。</p><p>一代人有一代人的命运。你们这代人有过一个安宁的童年和青少年时代，但你们的未来可能面对着中国社会的重大变革。</p><p>你们如果关注社会动态，就能看到天边在积聚着乌云，就能听到乌云中酝酿的风暴。</p><p>敏锐的人都能看到，风云变幻，暗潮涌动，前途莫测。</p><p>最近北大一位教授在毕业典礼上致词时向同学们提出几个严肃的问题：本拉登到底是恐怖主义分子，还是神圣的殉道者？金日成究竟是流氓还是政治家？斯诺登究竟是叛国者还是人权卫士？人们都知道这位教授的答案。</p><p>你们该如何回答这几个问题呢？在我看来，如果在第三个问题上有所困惑尚可原谅，但前两个问题竟然还是问题，这本身就是令人担忧的大问题。</p><p>面对可能到来的社会大变局，你将如何选择？</p><p>当你做出选择的时候，你是不是一个明白人？</p><p>龙应台女士在《大江大海——1949》里，记录了无数人在那一刻的选择：走还是不走？走，是一辈子；不走，也是一辈子。无数人的悲剧就从那一刻所做出的选择开始。</p><p>国家走了一段弯路，对你来说，就是毁了一生。</p><p>面对一些小人物被命运所裹挟的无奈处境，龙应台感慨地说：“一滴水，怎么会知道洪流的方向呢？”</p><p>但我想，你们是政法大学的毕业生，是政管院毕业的学士，你们应该比普通人更有能力识别洪流的走向。</p><p>人们感叹，一片漂零的树叶，无法阻挡汹涌而来的大潮。</p><p>但即使是一片树叶，你是否有过挣扎？你向哪个方向挣扎？</p><p>如果中国再来一次义和团或红卫兵运动，如果重庆模式成为中国模式，你们能不能清醒地说不？如何你没有这个见识或勇气，能不能至少做个无害的逍遥派？</p><p>面对滚滚而来的浊流，如果你不能总是抗争，你是否可以选择偶尔抗争；</p><p>如果你不敢积极的抗争，你还可以选择消极地抗争；</p><p>如果你不能勇敢地表达，你可以选择含蓄地表达；如果你也不敢含蓄地表达，你可以选择沉默。</p><p>如果你没有选择沉默而是选择了配合，但你还可以把调门放低一些。在你主动的或被迫地干着坏事时，能不能内心里还残留一点不安和负罪感。这一点儿不安或负罪感，仍是人性未泯的标记。</p><p>即使你不去抗争，但对其他抗争者，要怀着几分敬重，即使没有这份敬重，也不要在背后放冷箭，使绊子，助纣为虐。</p><p>我希望，你们在大潮袭来时，选择站在理性一边，文明一边，选择站在人民一边。</p><p>当你们走出校园的时候，你们面对着一个特殊的社会。这个社会，已经是一个高效率的大染缸。</p><p>当年，墨子看见人家染布，白的进去，五颜六色的出来。他哭了。</p><p>你们应该理解，我们今天看着尚有几分天真纯洁的你们，走进这个大染缸时的心情。</p><p>告别母校，意味着告别了纯净的生活，投入滚滚红尘，滔滔江湖。</p><p>以后你们一次次受伤时，会念起母校，不管在这里经历过多少不快，这已经算是一方净土。</p><p>面对着这样的社会环境，你能不能做到举世皆醉，惟我独醒；举世混浊，惟我独清？</p><p>我对此不抱多大希望，我自己也做不到。如果坚持那样的处世准则，也只好随着屈原投入汩罗江。</p><p>但佛教的一个处世原则却可以给我们一些指引：那就是“随缘不变，不变随缘”。既有随缘，也有不变。不变是原则，随缘是通融。我想这应该是大多数人能够实践的准则。</p><p>有一句据说是哲学家黑格尔的话在中国广为流行，“存在的就是合理的”，它成为人们犬儒主义处世哲学的圭臬，成为自己懦弱性格或投机行为的挡剪牌。其实黑格尔虽然谨小慎微，但还不至于这样猥琐。黑格尔的意思是说：现实的不等于现存的，在现存的事务中，只有符合理性的部分才是现实的。虽然这仍然有为现实辩护与妥协的倾向，但它毕竟还是有底线的，即，只接受现实中符合客观理性的内容。</p><p>即使你必然受到污染，甚至不得不有所堕落，你是部分地堕落还是整体地堕落？尽情地堕落还是在抗拒中堕落？不情愿地堕落还是享受着堕落？</p><p>有人说，我不可能堕落，你先不要这样说，人都是在浑然不觉中堕落的。</p><p>据我的观察，当一个学生负疚地对你说，老师，我现在每天的工作就是犯罪，这是毕业不到5年的学生；待他毕业十年以后，当你跟他说，小子，你现在每天干的事就是犯罪，他会表现出反感甚至愤怒，骂你老迂腐。</p><p>毕业十年以后再见到你们的时候，我不希望你们挺着大腹便便的身躯，挂着一副被酒色沤得浮肿的面庞，张口即出的是权力拜物教与金钱拜物教的信条。</p><p>在个人生活领域，我希望你们选择健康向上的人生，选择做一个有良知的文明人。</p><p>当然，坦率地告诉你们冷酷的现实，并不是让你们应该选择消极和放弃。人们常说，我们虽然长着黑色眼睛，却用它寻找光明。没有光明和希望，那是不可能继续下去的绝望的人生。</p><p>我们需要在出世的精神境界与入世的生存智慧间达成一个平衡。</p><p>我们需要了解人性的全部缺陷，同时也要努力发现人性的崇高；尽管这个现实的世界多有黑暗，但我们敞开精神世界迎接阳光；虽然我们能够直面人生的暗淡，但仍然保持着对美好生活的激情与向往；这个社会经常令人沮丧，但我们不该放弃希望；虽然自知改变不了这个世界，但我们的努力依然顽强！</p><p>你内心的一片净土只属于你，只要你守护着它，任何外部力量都无法进入。</p><p>曾有一位西方人面对放弃的忠告时说，我不是要改变世界，我只是不想改变自己。也就是说，“你不能决定明天的太阳几点升起，但你能决定几点钟起床。”</p><p>同学们，在向你们告别的时候，作为老师，我对你们有十分的感激，也有几分的不安。</p><p>我们是在“西方文明通论”的课堂上相识相处的。这门课是面向全校同学的，但政管院的同学给了我特别的理解、关爱和支持，我也把你们当作我的嫡系。</p><p>但是，我的学术水平还不能满足你们求知的渴望，四年中对你们或有忽视，或未尽职，没有满足同学们要我参加一些课外活动的要求，更没有与同学们经常在校园小聚畅谈，爬山游泳，登野长城，赏蟒山红叶。望着你们，不免有一种愧疚袭上心头。我本来可以做得更多，做得更好。你们的离开，留给我的，是无法弥补的遗憾！</p><p>同学们，你们就要远走高飞了。今天，我们注视着你们离开的背影，而追随着你们脚步的，是我们永久的牵挂！</p><p>不论你们是聪明乖巧，还是鲁钝耿直，不论你们是否高富帅和白富美，你们都是我们的学生。</p><p>我们关注你们的成功，关注你们的幸福，更关注你们是否走在正路上。</p><p>愿上苍眷顾你们！</p><p>再见了，同学们！</p>]]>
    </content>
    <id>https://editst.com/2018/congriyun/</id>
    <link href="https://editst.com/2018/congriyun/"/>
    <published>2018-12-01T15:01:13.000Z</published>
    <summary>
      <![CDATA[<p>2013届的同学们：</p>
<p>今天是你喜庆的日子，是你们的成人礼，是你们人生的一个新的开端。</p>
<p>你们将披戴上一副庄重的桂冠和礼袍，那表示你们成为了“学士”。在中国传统的语言中，成为“士”，那就是获得了一种与众不同的身份。“学以居位曰士”，“以才智用者谓之士”。士有各种，而“学士”，就是以学问和才智获得“士”的资格，受人尊重的人。</p>
<p>所以，我衷心地祝贺你们，祝贺你们十几年求学终成正果！</p>
<p>昨天，我儿子通过博士答辩，完成学业，也与你们一样，在这个毕业季走出校园，走向社会。</p>
<p>我对他的担忧与期望，也就是对你们的担扰与期望。</p>
<p>我是他的父亲，也是你们的丛大大。</p>
<p>你们今天毕业走出校门，明天就是社会大学的开学典礼。人生就是一次次的毕业与开学，但是，只有这次毕业与开学是人生最重要的转折点。<br>
与今后的漫长旅程相比，你以前的学习生活只是学步而已；与即将开场的人生大戏相比，此前的学习生活只是序幕而已。</p>
<p>你们即将进入的这个社会，是一个丰富而精彩的人生舞台，你们将在那里实现自己的价值，享受你们的人生。但同时，它也是一个险恶的江湖，污浊的泥潭。</p>]]>
    </summary>
    <title>从日云教授在中国政法大学2013届毕业典礼上的演讲</title>
    <updated>2019-06-03T18:48:13.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="物理" scheme="https://editst.com/categories/%E7%89%A9%E7%90%86/"/>
    <category term="计算物理" scheme="https://editst.com/tags/%E8%AE%A1%E7%AE%97%E7%89%A9%E7%90%86/"/>
    <category term="Python" scheme="https://editst.com/tags/Python/"/>
    <content>
      <![CDATA[<h2 id="4-19">4.19</h2><blockquote><p>Study the behavior of our model for Hyperion for different initial conditions. Estimate the Lyapunov exponent from calculation of <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.023ex;" xmlns="http://www.w3.org/2000/svg" width="2.946ex" height="1.643ex" role="img" focusable="false" viewBox="0 -716 1302 726"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="394" d="M51 0Q46 4 46 7Q46 9 215 357T388 709Q391 716 416 716Q439 716 444 709Q447 705 616 357T786 7Q786 4 781 0H51ZM507 344L384 596L137 92L383 91H630Q630 93 507 344Z"></path></g><g data-mml-node="mi" transform="translate(833,0)"><path data-c="1D703" d="M35 200Q35 302 74 415T180 610T319 704Q320 704 327 704T339 705Q393 701 423 656Q462 596 462 495Q462 380 417 261T302 66T168 -10H161Q125 -10 99 10T60 63T41 130T35 200ZM383 566Q383 668 330 668Q294 668 260 623T204 521T170 421T157 371Q206 370 254 370L351 371Q352 372 359 404T375 484T383 566ZM113 132Q113 26 166 26Q181 26 198 36T239 74T287 161T335 307L340 324H145Q145 321 136 286T120 208T113 132Z"></path></g></g></g></svg></mjx-container>, such as those shown in Figure 4.19. Examine how this exponent varies as a function of the eccentricity of the orbit.</p></blockquote><span id="more"></span><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> numpy <span class="keyword">as</span> np</span><br><span class="line"><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> pl</span><br><span class="line"><span class="keyword">from</span> math <span class="keyword">import</span> *</span><br><span class="line"></span><br><span class="line"><span class="keyword">class</span> <span class="title class_">hyperion</span>(<span class="title class_ inherited__">object</span>):</span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">__init__</span>(<span class="params">self, eccentricity = <span class="number">0</span>, initial_theta = <span class="number">0</span>, total_time = <span class="number">10</span>, time_step = <span class="number">0.0001</span></span>):</span><br><span class="line">        self.e = eccentricity</span><br><span class="line">        self.t = np.arange(time_step, total_time + time_step, time_step)</span><br><span class="line">        self.dt = time_step</span><br><span class="line">        self.theta = initial_theta</span><br><span class="line"></span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">run</span>(<span class="params">self</span>):</span><br><span class="line">        self.x = np.array([<span class="number">1</span>])</span><br><span class="line">        self.y = np.array([<span class="number">0</span>])</span><br><span class="line">        self.v_x = np.array([<span class="number">0</span>])</span><br><span class="line">        self.v_y = np.array([<span class="number">2</span> * pi * sqrt((<span class="number">1</span> - self.e)/(<span class="number">1</span> + self.e))])</span><br><span class="line">        self.w = np.array([<span class="number">0</span>])</span><br><span class="line">        self.theta = np.array([self.theta])</span><br><span class="line">        self.theta_raw = np.array([self.theta])</span><br><span class="line">        self.r = np.array([sqrt(self.x ** <span class="number">2</span> + self.y ** <span class="number">2</span>)])</span><br><span class="line">        <span class="keyword">for</span> n <span class="keyword">in</span> <span class="built_in">range</span>(<span class="built_in">len</span>(self.t) - <span class="number">1</span>):</span><br><span class="line">            temp_r = sqrt(self.x[-<span class="number">1</span>]**<span class="number">2</span> + self.y[-<span class="number">1</span>]**<span class="number">2</span>)</span><br><span class="line">            temp_vx = self.v_x[-<span class="number">1</span>] - self.dt * (<span class="number">4</span>*pi**<span class="number">2</span> * self.x[-<span class="number">1</span>] / temp_r ** <span class="number">3</span>)</span><br><span class="line">            temp_vy = self.v_y[-<span class="number">1</span>] - self.dt * (<span class="number">4</span>*pi**<span class="number">2</span> * self.y[-<span class="number">1</span>] / temp_r ** <span class="number">3</span>)</span><br><span class="line">            temp_x = self.x[-<span class="number">1</span>] + temp_vx * self.dt</span><br><span class="line">            temp_y = self.y[-<span class="number">1</span>] + temp_vy * self.dt</span><br><span class="line">            temp_w = self.w[-<span class="number">1</span>] - <span class="number">12</span>*pi**<span class="number">2</span> / temp_r**<span class="number">5</span> * self.dt \</span><br><span class="line">                *(self.x[-<span class="number">1</span>]*sin(self.theta[-<span class="number">1</span>])-self.y[-<span class="number">1</span>]*cos(self.theta[-<span class="number">1</span>]))*(self.x[-<span class="number">1</span>]*cos(self.theta[-<span class="number">1</span>])+self.y[-<span class="number">1</span>]*sin(self.theta[-<span class="number">1</span>]))</span><br><span class="line">            temp_theta = self.theta[-<span class="number">1</span>] + self.w[-<span class="number">1</span>] * self.dt</span><br><span class="line"></span><br><span class="line">            self.r = np.append(self.r, temp_r)</span><br><span class="line">            self.v_x = np.append(self.v_x, temp_vx)</span><br><span class="line">            self.v_y = np.append(self.v_y, temp_vy)</span><br><span class="line">            self.x = np.append(self.x, temp_x)</span><br><span class="line">            self.y = np.append(self.y, temp_y)</span><br><span class="line">            self.w = np.append(self.w, temp_w)</span><br><span class="line">            self.theta_raw = np.append(self.theta_raw, temp_theta)</span><br><span class="line"></span><br><span class="line">            <span class="keyword">while</span> temp_theta &gt;= pi:</span><br><span class="line">                temp_theta -= <span class="number">2</span>*pi</span><br><span class="line">            <span class="keyword">while</span>  temp_theta &lt;= -pi:</span><br><span class="line">                temp_theta += <span class="number">2</span>*pi</span><br><span class="line">            self.theta = np.append(self.theta, temp_theta)</span><br><span class="line"></span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">show</span>(<span class="params">self</span>):</span><br><span class="line">        pl.figure(figsize = (<span class="number">12</span>,<span class="number">4</span>), dpi=<span class="number">80</span>)</span><br><span class="line">        pl.subplot(<span class="number">131</span>)</span><br><span class="line">        pl.subplots_adjust(wspace = <span class="number">0.3</span>)</span><br><span class="line">        pl.plot(self.t, self.theta, linewidth = <span class="number">1</span>)</span><br><span class="line">        pl.xlabel(<span class="string">'t (yr)'</span>)</span><br><span class="line">        pl.ylabel(<span class="string">r'\theta (radians)'</span>)</span><br><span class="line">        pl.title(<span class="string">r'$\theta$ versus time when $e = %.1f$'</span>% (self.e))</span><br><span class="line"></span><br><span class="line">        pl.subplot(<span class="number">132</span>)</span><br><span class="line">        pl.subplots_adjust(wspace = <span class="number">0.3</span>)</span><br><span class="line">        pl.plot(self.t, self.w, linewidth = <span class="number">1</span>)</span><br><span class="line">        pl.xlabel(<span class="string">'t (yr)'</span>)</span><br><span class="line">        pl.ylabel(<span class="string">r'$\omega$ (radians/yr)'</span>)</span><br><span class="line">        pl.title(<span class="string">r'$\omega$ versus time when $e = %.1f$'</span>% (self.e))</span><br><span class="line"></span><br><span class="line">        pl.subplot(<span class="number">133</span>)</span><br><span class="line">        pl.subplots_adjust(wspace = <span class="number">0.3</span>)</span><br><span class="line">        pl.plot(self.theta, self.w, <span class="string">'o'</span>, markersize = <span class="number">1</span>)</span><br><span class="line">        pl.xlabel(<span class="string">r'$\theta$ (radians)'</span>)</span><br><span class="line">        pl.ylabel(<span class="string">r'$\omega$ (radians/yr)'</span>)</span><br><span class="line">        pl.title(<span class="string">r'$\omega$ versus $\theta$ when $e = %.1f$'</span>% (self.e))</span><br><span class="line">        pl.show()</span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> __name__ == <span class="string">'__main__'</span>:</span><br><span class="line">    a = hyperion()</span><br><span class="line">    a.run()</span><br><span class="line">    a.show()</span><br></pre></td></tr></table></figure><p><img src="homework8-1.png" alt=""></p><p>当离心率为 0 时，可以看到这是一个非混沌的系统，从角速度图像和相空间图可以很清楚的看出这一点。下面研究一下不同离心率情况下运动情况。</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">for</span> e <span class="keyword">in</span> (<span class="number">0.1</span>, <span class="number">0.2</span>, <span class="number">0.3</span>, <span class="number">0.4</span>):</span><br><span class="line">    a = hyperion(eccentricity = e)</span><br><span class="line">    a.run()</span><br><span class="line">    a.show()</span><br></pre></td></tr></table></figure><p><img src="homework8-2.png" alt=""><br><img src="homework8-3.png" alt=""><br><img src="homework8-4.png" alt=""><br><img src="homework8-5.png" alt=""></p><p>直观上很容易发现随着离心率的增大系统的混沌程度迅速增加，下面我们计算一下衡量混沌程度的 Lyapunov 指数来验证一下。</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line">k = <span class="number">221</span></span><br><span class="line">pl.figure(figsize = (<span class="number">16</span>,<span class="number">16</span>), dpi=<span class="number">80</span>)</span><br><span class="line"><span class="keyword">for</span> e <span class="keyword">in</span> [<span class="number">0</span>, <span class="number">0.2</span>, <span class="number">0.4</span>, <span class="number">0.6</span>]:</span><br><span class="line">    a = hyperion(eccentricity = e, total_time=<span class="number">2</span>)</span><br><span class="line">    a.run()</span><br><span class="line">    b = hyperion(eccentricity = e, initial_theta=<span class="number">0.001</span>, total_time=<span class="number">2</span>)</span><br><span class="line">    b.run()</span><br><span class="line">    delta_theta = b.theta_raw - a.theta_raw</span><br><span class="line"></span><br><span class="line">    y = np.log(np.<span class="built_in">abs</span>(delta_theta)) <span class="comment"># 取对数后使用最小二乘法进行线性拟合</span></span><br><span class="line">    func = np.polyfit(a.t, y, <span class="number">1</span>)</span><br><span class="line">    y_fit = np.exp(func[<span class="number">0</span>] * a.t + func[<span class="number">1</span>])</span><br><span class="line"></span><br><span class="line">    pl.subplot(k)</span><br><span class="line">    pl.yscale(<span class="string">'log'</span>)</span><br><span class="line">    pl.plot(a.t, delta_theta, <span class="string">'o'</span>, markersize = <span class="number">1</span>)</span><br><span class="line">    pl.plot(a.t, y_fit, linewidth = <span class="number">1.5</span>)</span><br><span class="line">    pl.xlabel(<span class="string">'time(yr)'</span>)</span><br><span class="line">    pl.ylabel(<span class="string">r'$\Delta \theta (radians)$'</span>)</span><br><span class="line">    pl.title(<span class="string">r'$\Delta \theta$ verus time when when $e = %.1f$'</span>% (a.e),)</span><br><span class="line">    pl.text(<span class="number">1.5</span>, <span class="number">1e-6</span>, <span class="string">'$\lambda=%.4f$'</span>% func[<span class="number">0</span>], size = <span class="number">15</span>)</span><br><span class="line">    k += <span class="number">1</span></span><br><span class="line">pl.show()</span><br></pre></td></tr></table></figure><p><img src="homework8-6.png" alt=""></p><p>可以发现即使对于圆轨道，其 Lyapunov 指数仍然为正的，表明这个系统即使在圆轨道情况下也是略微混沌的。随着离心率的增加，Lyapunov 指数很明显是迅速增大的，这和我们之前的感觉是一致的。</p><h2 id="5-7">5.7</h2><blockquote><p>Write two programs to solve the capacitor problem of Figure 5.6 and 5.7, one using the Jacobi method and one using the SOR algorithm. For a fixed accuracy (as set by the convergence test) compare the number of iterations, <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.357ex;" xmlns="http://www.w3.org/2000/svg" width="4.601ex" height="1.902ex" role="img" focusable="false" viewBox="0 -683 2033.6 840.8"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D441" d="M234 637Q231 637 226 637Q201 637 196 638T191 649Q191 676 202 682Q204 683 299 683Q376 683 387 683T401 677Q612 181 616 168L670 381Q723 592 723 606Q723 633 659 637Q635 637 635 648Q635 650 637 660Q641 676 643 679T653 683Q656 683 684 682T767 680Q817 680 843 681T873 682Q888 682 888 672Q888 650 880 642Q878 637 858 637Q787 633 769 597L620 7Q618 0 599 0Q585 0 582 2Q579 5 453 305L326 604L261 344Q196 88 196 79Q201 46 268 46H278Q284 41 284 38T282 19Q278 6 272 0H259Q228 2 151 2Q123 2 100 2T63 2T46 1Q31 1 31 10Q31 14 34 26T39 40Q41 46 62 46Q130 49 150 85Q154 91 221 362L289 634Q287 635 234 637Z"></path></g><g data-mml-node="TeXAtom" transform="translate(836,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mi" transform="translate(345,0)"><path data-c="1D461" d="M26 385Q19 392 19 395Q19 399 22 411T27 425Q29 430 36 430T87 431H140L159 511Q162 522 166 540T173 566T179 586T187 603T197 615T211 624T229 626Q247 625 254 615T261 596Q261 589 252 549T232 470L222 433Q222 431 272 431H323Q330 424 330 420Q330 398 317 385H210L174 240Q135 80 135 68Q135 26 162 26Q197 26 230 60T283 144Q285 150 288 151T303 153H307Q322 153 322 145Q322 142 319 133Q314 117 301 95T267 48T216 6T155 -11Q125 -11 98 4T59 56Q57 64 57 83V101L92 241Q127 382 128 383Q128 385 77 385H26Z"></path></g><g data-mml-node="mi" transform="translate(706,0)"><path data-c="1D452" d="M39 168Q39 225 58 272T107 350T174 402T244 433T307 442H310Q355 442 388 420T421 355Q421 265 310 237Q261 224 176 223Q139 223 138 221Q138 219 132 186T125 128Q125 81 146 54T209 26T302 45T394 111Q403 121 406 121Q410 121 419 112T429 98T420 82T390 55T344 24T281 -1T205 -11Q126 -11 83 42T39 168ZM373 353Q367 405 305 405Q272 405 244 391T199 357T170 316T154 280T149 261Q149 260 169 260Q282 260 327 284T373 353Z"></path></g><g data-mml-node="mi" transform="translate(1172,0)"><path data-c="1D45F" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g></g></g></g></svg></mjx-container>, that each algorithm requires as a function of the number of grid elements, <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: 0;" xmlns="http://www.w3.org/2000/svg" width="1.541ex" height="1.545ex" role="img" focusable="false" viewBox="0 -683 681 683"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D43F" d="M228 637Q194 637 192 641Q191 643 191 649Q191 673 202 682Q204 683 217 683Q271 680 344 680Q485 680 506 683H518Q524 677 524 674T522 656Q517 641 513 637H475Q406 636 394 628Q387 624 380 600T313 336Q297 271 279 198T252 88L243 52Q243 48 252 48T311 46H328Q360 46 379 47T428 54T478 72T522 106T564 161Q580 191 594 228T611 270Q616 273 628 273H641Q647 264 647 262T627 203T583 83T557 9Q555 4 553 3T537 0T494 -1Q483 -1 418 -1T294 0H116Q32 0 32 10Q32 17 34 24Q39 43 44 45Q48 46 59 46H65Q92 46 125 49Q139 52 144 61Q147 65 216 339T285 628Q285 635 228 637Z"></path></g></g></g></svg></mjx-container>. Show that for the Jacobi method <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.357ex;" xmlns="http://www.w3.org/2000/svg" width="10.146ex" height="2.244ex" role="img" focusable="false" viewBox="0 -833.9 4484.7 991.7"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D441" d="M234 637Q231 637 226 637Q201 637 196 638T191 649Q191 676 202 682Q204 683 299 683Q376 683 387 683T401 677Q612 181 616 168L670 381Q723 592 723 606Q723 633 659 637Q635 637 635 648Q635 650 637 660Q641 676 643 679T653 683Q656 683 684 682T767 680Q817 680 843 681T873 682Q888 682 888 672Q888 650 880 642Q878 637 858 637Q787 633 769 597L620 7Q618 0 599 0Q585 0 582 2Q579 5 453 305L326 604L261 344Q196 88 196 79Q201 46 268 46H278Q284 41 284 38T282 19Q278 6 272 0H259Q228 2 151 2Q123 2 100 2T63 2T46 1Q31 1 31 10Q31 14 34 26T39 40Q41 46 62 46Q130 49 150 85Q154 91 221 362L289 634Q287 635 234 637Z"></path></g><g data-mml-node="TeXAtom" transform="translate(836,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mi" transform="translate(345,0)"><path data-c="1D461" d="M26 385Q19 392 19 395Q19 399 22 411T27 425Q29 430 36 430T87 431H140L159 511Q162 522 166 540T173 566T179 586T187 603T197 615T211 624T229 626Q247 625 254 615T261 596Q261 589 252 549T232 470L222 433Q222 431 272 431H323Q330 424 330 420Q330 398 317 385H210L174 240Q135 80 135 68Q135 26 162 26Q197 26 230 60T283 144Q285 150 288 151T303 153H307Q322 153 322 145Q322 142 319 133Q314 117 301 95T267 48T216 6T155 -11Q125 -11 98 4T59 56Q57 64 57 83V101L92 241Q127 382 128 383Q128 385 77 385H26Z"></path></g><g data-mml-node="mi" transform="translate(706,0)"><path data-c="1D452" d="M39 168Q39 225 58 272T107 350T174 402T244 433T307 442H310Q355 442 388 420T421 355Q421 265 310 237Q261 224 176 223Q139 223 138 221Q138 219 132 186T125 128Q125 81 146 54T209 26T302 45T394 111Q403 121 406 121Q410 121 419 112T429 98T420 82T390 55T344 24T281 -1T205 -11Q126 -11 83 42T39 168ZM373 353Q367 405 305 405Q272 405 244 391T199 357T170 316T154 280T149 261Q149 260 169 260Q282 260 327 284T373 353Z"></path></g><g data-mml-node="mi" transform="translate(1172,0)"><path data-c="1D45F" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g></g><g data-mml-node="mo" transform="translate(2311.4,0)"><path data-c="223C" d="M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z"></path></g><g data-mml-node="msup" transform="translate(3367.2,0)"><g data-mml-node="mi"><path data-c="1D43F" d="M228 637Q194 637 192 641Q191 643 191 649Q191 673 202 682Q204 683 217 683Q271 680 344 680Q485 680 506 683H518Q524 677 524 674T522 656Q517 641 513 637H475Q406 636 394 628Q387 624 380 600T313 336Q297 271 279 198T252 88L243 52Q243 48 252 48T311 46H328Q360 46 379 47T428 54T478 72T522 106T564 161Q580 191 594 228T611 270Q616 273 628 273H641Q647 264 647 262T627 203T583 83T557 9Q555 4 553 3T537 0T494 -1Q483 -1 418 -1T294 0H116Q32 0 32 10Q32 17 34 24Q39 43 44 45Q48 46 59 46H65Q92 46 125 49Q139 52 144 61Q147 65 216 339T285 628Q285 635 228 637Z"></path></g><g data-mml-node="mn" transform="translate(714,363) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g></g></svg></mjx-container>, while SOR <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.357ex;" xmlns="http://www.w3.org/2000/svg" width="9.159ex" height="1.902ex" role="img" focusable="false" viewBox="0 -683 4048.2 840.8"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D441" d="M234 637Q231 637 226 637Q201 637 196 638T191 649Q191 676 202 682Q204 683 299 683Q376 683 387 683T401 677Q612 181 616 168L670 381Q723 592 723 606Q723 633 659 637Q635 637 635 648Q635 650 637 660Q641 676 643 679T653 683Q656 683 684 682T767 680Q817 680 843 681T873 682Q888 682 888 672Q888 650 880 642Q878 637 858 637Q787 633 769 597L620 7Q618 0 599 0Q585 0 582 2Q579 5 453 305L326 604L261 344Q196 88 196 79Q201 46 268 46H278Q284 41 284 38T282 19Q278 6 272 0H259Q228 2 151 2Q123 2 100 2T63 2T46 1Q31 1 31 10Q31 14 34 26T39 40Q41 46 62 46Q130 49 150 85Q154 91 221 362L289 634Q287 635 234 637Z"></path></g><g data-mml-node="TeXAtom" transform="translate(836,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mi" transform="translate(345,0)"><path data-c="1D461" d="M26 385Q19 392 19 395Q19 399 22 411T27 425Q29 430 36 430T87 431H140L159 511Q162 522 166 540T173 566T179 586T187 603T197 615T211 624T229 626Q247 625 254 615T261 596Q261 589 252 549T232 470L222 433Q222 431 272 431H323Q330 424 330 420Q330 398 317 385H210L174 240Q135 80 135 68Q135 26 162 26Q197 26 230 60T283 144Q285 150 288 151T303 153H307Q322 153 322 145Q322 142 319 133Q314 117 301 95T267 48T216 6T155 -11Q125 -11 98 4T59 56Q57 64 57 83V101L92 241Q127 382 128 383Q128 385 77 385H26Z"></path></g><g data-mml-node="mi" transform="translate(706,0)"><path data-c="1D452" d="M39 168Q39 225 58 272T107 350T174 402T244 433T307 442H310Q355 442 388 420T421 355Q421 265 310 237Q261 224 176 223Q139 223 138 221Q138 219 132 186T125 128Q125 81 146 54T209 26T302 45T394 111Q403 121 406 121Q410 121 419 112T429 98T420 82T390 55T344 24T281 -1T205 -11Q126 -11 83 42T39 168ZM373 353Q367 405 305 405Q272 405 244 391T199 357T170 316T154 280T149 261Q149 260 169 260Q282 260 327 284T373 353Z"></path></g><g data-mml-node="mi" transform="translate(1172,0)"><path data-c="1D45F" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g></g><g data-mml-node="mo" transform="translate(2311.4,0)"><path data-c="223C" d="M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z"></path></g><g data-mml-node="mi" transform="translate(3367.2,0)"><path data-c="1D43F" d="M228 637Q194 637 192 641Q191 643 191 649Q191 673 202 682Q204 683 217 683Q271 680 344 680Q485 680 506 683H518Q524 677 524 674T522 656Q517 641 513 637H475Q406 636 394 628Q387 624 380 600T313 336Q297 271 279 198T252 88L243 52Q243 48 252 48T311 46H328Q360 46 379 47T428 54T478 72T522 106T564 161Q580 191 594 228T611 270Q616 273 628 273H641Q647 264 647 262T627 203T583 83T557 9Q555 4 553 3T537 0T494 -1Q483 -1 418 -1T294 0H116Q32 0 32 10Q32 17 34 24Q39 43 44 45Q48 46 59 46H65Q92 46 125 49Q139 52 144 61Q147 65 216 339T285 628Q285 635 228 637Z"></path></g></g></g></svg></mjx-container>. (非常正经的计算机算法研究方式^_^）</p></blockquote><p>为了节约时间（生命），下面的代码已经包含了 SOR 方法和 Jacobi 方法，并直接使用 SOR 方法生成电场的图像。这里 SOR 方法的加速参数 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.025ex;" xmlns="http://www.w3.org/2000/svg" width="1.448ex" height="1.025ex" role="img" focusable="false" viewBox="0 -442 640 453"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FC" d="M34 156Q34 270 120 356T309 442Q379 442 421 402T478 304Q484 275 485 237V208Q534 282 560 374Q564 388 566 390T582 393Q603 393 603 385Q603 376 594 346T558 261T497 161L486 147L487 123Q489 67 495 47T514 26Q528 28 540 37T557 60Q559 67 562 68T577 70Q597 70 597 62Q597 56 591 43Q579 19 556 5T512 -10H505Q438 -10 414 62L411 69L400 61Q390 53 370 41T325 18T267 -2T203 -11Q124 -11 79 39T34 156ZM208 26Q257 26 306 47T379 90L403 112Q401 255 396 290Q382 405 304 405Q235 405 183 332Q156 292 139 224T121 120Q121 71 146 49T208 26Z"></path></g></g></g></svg></mjx-container> 直接使用课本上给出的建议值</p><p><mjx-container class="MathJax" jax="SVG" display="true"><svg style="vertical-align: -2.172ex;" xmlns="http://www.w3.org/2000/svg" width="13.319ex" height="5.208ex" role="img" focusable="false" viewBox="0 -1342 5887 2302"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FC" d="M34 156Q34 270 120 356T309 442Q379 442 421 402T478 304Q484 275 485 237V208Q534 282 560 374Q564 388 566 390T582 393Q603 393 603 385Q603 376 594 346T558 261T497 161L486 147L487 123Q489 67 495 47T514 26Q528 28 540 37T557 60Q559 67 562 68T577 70Q597 70 597 62Q597 56 591 43Q579 19 556 5T512 -10H505Q438 -10 414 62L411 69L400 61Q390 53 370 41T325 18T267 -2T203 -11Q124 -11 79 39T34 156ZM208 26Q257 26 306 47T379 90L403 112Q401 255 396 290Q382 405 304 405Q235 405 183 332Q156 292 139 224T121 120Q121 71 146 49T208 26Z"></path></g><g data-mml-node="mo" transform="translate(917.8,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mfrac" transform="translate(1973.6,0)"><g data-mml-node="mn" transform="translate(1706.7,676)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g><g data-mml-node="mrow" transform="translate(220,-710)"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path></g><g data-mml-node="mo" transform="translate(722.2,0)"><path data-c="2B" d="M56 237T56 250T70 270H369V420L370 570Q380 583 389 583Q402 583 409 568V270H707Q722 262 722 250T707 230H409V-68Q401 -82 391 -82H389H387Q375 -82 369 -68V230H70Q56 237 56 250Z"></path></g><g data-mml-node="mi" transform="translate(1722.4,0)"><path data-c="1D70B" d="M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"></path></g><g data-mml-node="TeXAtom" data-mjx-texclass="ORD" transform="translate(2292.4,0)"><g data-mml-node="mo"><path data-c="2F" d="M423 750Q432 750 438 744T444 730Q444 725 271 248T92 -240Q85 -250 75 -250Q68 -250 62 -245T56 -231Q56 -221 230 257T407 740Q411 750 423 750Z"></path></g></g><g data-mml-node="mi" transform="translate(2792.4,0)"><path data-c="1D43F" d="M228 637Q194 637 192 641Q191 643 191 649Q191 673 202 682Q204 683 217 683Q271 680 344 680Q485 680 506 683H518Q524 677 524 674T522 656Q517 641 513 637H475Q406 636 394 628Q387 624 380 600T313 336Q297 271 279 198T252 88L243 52Q243 48 252 48T311 46H328Q360 46 379 47T428 54T478 72T522 106T564 161Q580 191 594 228T611 270Q616 273 628 273H641Q647 264 647 262T627 203T583 83T557 9Q555 4 553 3T537 0T494 -1Q483 -1 418 -1T294 0H116Q32 0 32 10Q32 17 34 24Q39 43 44 45Q48 46 59 46H65Q92 46 125 49Q139 52 144 61Q147 65 216 339T285 628Q285 635 228 637Z"></path></g></g><rect width="3673.4" height="60" x="120" y="220"></rect></g></g></g></svg></mjx-container></p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> numpy <span class="keyword">as</span> np</span><br><span class="line"><span class="keyword">from</span> matplotlib <span class="keyword">import</span> pyplot <span class="keyword">as</span> pl</span><br><span class="line"><span class="keyword">from</span> mpl_toolkits.mplot3d <span class="keyword">import</span> Axes3D</span><br><span class="line"></span><br><span class="line"><span class="keyword">class</span> <span class="title class_">PDE</span>(<span class="title class_ inherited__">object</span>):</span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">__init__</span>(<span class="params">self, length = <span class="number">100</span></span>):</span><br><span class="line">        <span class="comment"># 初始化边界条件</span></span><br><span class="line">        self.v = np.zeros((length, length))</span><br><span class="line">        self.l = length</span><br><span class="line">        self.<span class="built_in">max</span> = <span class="built_in">int</span>(self.l * <span class="number">0.7</span>)</span><br><span class="line">        self.<span class="built_in">min</span> = <span class="built_in">int</span>(self.l * <span class="number">0.3</span>)</span><br><span class="line">        <span class="keyword">for</span> i <span class="keyword">in</span> <span class="built_in">range</span>(self.l):</span><br><span class="line">            <span class="keyword">for</span> j <span class="keyword">in</span> <span class="built_in">range</span>(self.l):</span><br><span class="line">                <span class="keyword">if</span> self.<span class="built_in">min</span> &lt;= i &lt;= self.<span class="built_in">max</span> <span class="keyword">and</span> j == self.<span class="built_in">min</span>:</span><br><span class="line">                    self.v[i, j] = <span class="number">1</span></span><br><span class="line">                <span class="keyword">elif</span> self.<span class="built_in">min</span> &lt;= i &lt;= self.<span class="built_in">max</span> <span class="keyword">and</span> j == self.<span class="built_in">max</span>:</span><br><span class="line">                    self.v[i, j] = -<span class="number">1</span></span><br><span class="line"></span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">run</span>(<span class="params">self, method = <span class="string">'jacobi'</span></span>):</span><br><span class="line">        self.method = method</span><br><span class="line">        self.delta_v = <span class="number">1</span></span><br><span class="line">        n_iter = <span class="number">0</span></span><br><span class="line">        <span class="keyword">while</span> <span class="built_in">abs</span>(self.delta_v) &gt; self.l ** <span class="number">2</span> * <span class="number">1e-5</span>:   <span class="comment"># 判断是否已经收敛</span></span><br><span class="line">            self.delta_v = <span class="number">0</span></span><br><span class="line">            n_iter += <span class="number">1</span></span><br><span class="line">            <span class="keyword">for</span> i <span class="keyword">in</span> <span class="built_in">range</span>(self.l):</span><br><span class="line">                <span class="keyword">for</span> j <span class="keyword">in</span> <span class="built_in">range</span>(self.l):</span><br><span class="line">                    <span class="keyword">if</span> j == self.<span class="built_in">min</span> <span class="keyword">and</span> self.<span class="built_in">min</span> &lt;= i &lt;= self.<span class="built_in">max</span>:</span><br><span class="line">                        <span class="keyword">pass</span></span><br><span class="line">                    <span class="keyword">elif</span> j == self.<span class="built_in">max</span> <span class="keyword">and</span> self.<span class="built_in">min</span> &lt;= i &lt;= self.<span class="built_in">max</span>:</span><br><span class="line">                        <span class="keyword">pass</span></span><br><span class="line">                    <span class="keyword">elif</span> i == <span class="number">0</span> <span class="keyword">or</span> j == <span class="number">0</span> <span class="keyword">or</span> i == self.l-<span class="number">1</span> <span class="keyword">or</span> j == self.l-<span class="number">1</span>:</span><br><span class="line">                        <span class="keyword">pass</span></span><br><span class="line">                    <span class="keyword">else</span>:</span><br><span class="line">                        v_new = (self.v[i+<span class="number">1</span>, j] + self.v[i-<span class="number">1</span>, j] + self.v[i, j+<span class="number">1</span>] + self.v[i, j-<span class="number">1</span>]) / <span class="number">4</span></span><br><span class="line">                        <span class="keyword">if</span> self.method == <span class="string">'sor'</span>:</span><br><span class="line">                            alpha = <span class="number">2</span> / (<span class="number">1</span> + np.pi / self.l)</span><br><span class="line">                            v_new = alpha * (v_new - self.v[i, j]) + self.v[i, j]</span><br><span class="line">                        self.delta_v += <span class="built_in">abs</span>(v_new - self.v[i, j])</span><br><span class="line">                        self.v[i, j] = v_new</span><br><span class="line">        <span class="keyword">return</span>(n_iter)</span><br><span class="line"></span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">show</span>(<span class="params">self</span>):</span><br><span class="line">        X = np.arange(<span class="number">0</span>, self.l)</span><br><span class="line">        Y = np.arange(<span class="number">0</span>, self.l)</span><br><span class="line">        X, Y = np.meshgrid(X, Y)</span><br><span class="line">        Z = self.v</span><br><span class="line">        pl.figure(figsize = (<span class="number">10</span>, <span class="number">10</span>), dpi = <span class="number">80</span>)</span><br><span class="line">        CS = pl.contour(X, Y, Z, <span class="number">30</span>, alpha=<span class="number">1</span>)</span><br><span class="line">        pl.clabel(CS, inline=<span class="number">1</span>, fontsize=<span class="number">10</span>)</span><br><span class="line">        pl.title(<span class="string">'Electric potential 2D'</span>)</span><br><span class="line">        pl.xlabel(<span class="string">'x'</span>)</span><br><span class="line">        pl.ylabel(<span class="string">'y'</span>)</span><br><span class="line"></span><br><span class="line">        figure = pl.figure(figsize = (<span class="number">10</span>, <span class="number">8</span>), dpi = <span class="number">80</span>)</span><br><span class="line">        ax = Axes3D(figure)</span><br><span class="line">        surf = ax.plot_surface(X, Y, Z, rstride = <span class="number">1</span>, cstride = <span class="number">1</span>, cmap=<span class="string">'rainbow'</span>)</span><br><span class="line">        ax.set_xlabel(<span class="string">'x'</span>)</span><br><span class="line">        ax.set_ylabel(<span class="string">'y'</span>)</span><br><span class="line">        ax.set_zlabel(<span class="string">'voltage(V)'</span>)</span><br><span class="line">        ax.set_title(<span class="string">'Electric potential 3D'</span>)</span><br><span class="line">        figure.colorbar(surf, shrink=<span class="number">0.5</span>, aspect=<span class="number">5</span>)</span><br><span class="line">        pl.show()</span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> __name__ == <span class="string">'__main__'</span>:</span><br><span class="line">    a = PDE()</span><br><span class="line">    a.run(method = <span class="string">'sor'</span>)  <span class="comment"># 这里直接使用 SOR 方法</span></span><br><span class="line">    a.show()</span><br></pre></td></tr></table></figure><p><img src="homework8-7.png" alt=""><br><img src="homework8-8.png" alt=""></p><p>下面我们计算不同 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: 0;" xmlns="http://www.w3.org/2000/svg" width="1.541ex" height="1.545ex" role="img" focusable="false" viewBox="0 -683 681 683"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D43F" d="M228 637Q194 637 192 641Q191 643 191 649Q191 673 202 682Q204 683 217 683Q271 680 344 680Q485 680 506 683H518Q524 677 524 674T522 656Q517 641 513 637H475Q406 636 394 628Q387 624 380 600T313 336Q297 271 279 198T252 88L243 52Q243 48 252 48T311 46H328Q360 46 379 47T428 54T478 72T522 106T564 161Q580 191 594 228T611 270Q616 273 628 273H641Q647 264 647 262T627 203T583 83T557 9Q555 4 553 3T537 0T494 -1Q483 -1 418 -1T294 0H116Q32 0 32 10Q32 17 34 24Q39 43 44 45Q48 46 59 46H65Q92 46 125 49Q139 52 144 61Q147 65 216 339T285 628Q285 635 228 637Z"></path></g></g></g></svg></mjx-container> 值时两种方法分别需要的迭代次数，验证题目中给出的结论。</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line">n_sor = np.array([])</span><br><span class="line">n_jacobi = np.array([])</span><br><span class="line">leng = np.arange(<span class="number">10</span>, <span class="number">100</span>, <span class="number">5</span>)</span><br><span class="line"><span class="keyword">for</span> l <span class="keyword">in</span> leng:</span><br><span class="line">    a = PDE(length = l)</span><br><span class="line">    n_jacobi = np.append(n_jacobi, a.run())</span><br><span class="line">    n_sor = np.append(n_sor, a.run(method = <span class="string">'sor'</span>))</span><br><span class="line"></span><br><span class="line">func_jacobi = np.polyfit(leng, n_jacobi, <span class="number">2</span>)</span><br><span class="line">n_fit_jacobi = func_jacobi[<span class="number">0</span>] * leng ** <span class="number">2</span> + func_jacobi[<span class="number">1</span>] * leng + func_jacobi[<span class="number">2</span>]</span><br><span class="line">func_sor = np.polyfit(leng, n_sor, <span class="number">1</span>)</span><br><span class="line">n_fit_sor = func_sor[<span class="number">0</span>] * leng + func_sor[<span class="number">1</span>]</span><br><span class="line"></span><br><span class="line">pl.figure(figsize = (<span class="number">10</span>, <span class="number">10</span>), dpi = <span class="number">80</span>)</span><br><span class="line">pl.plot(leng, n_jacobi, <span class="string">'ob'</span>)</span><br><span class="line">pl.plot(leng, n_fit_jacobi, <span class="string">'b'</span>, label = <span class="string">'Jacobi method'</span>)</span><br><span class="line">pl.plot(leng, n_sor, <span class="string">'or'</span>)</span><br><span class="line">pl.plot(leng, n_fit_sor, <span class="string">'r'</span>, label = <span class="string">'SOR method'</span>)</span><br><span class="line">pl.xlabel(<span class="string">'L'</span>)</span><br><span class="line">pl.ylabel(<span class="string">r'$N_{iter}$'</span>)</span><br><span class="line">pl.legend(loc = <span class="string">'center right'</span>)</span><br><span class="line">pl.text(<span class="number">10</span>, <span class="number">300</span>, <span class="string">'$N_{Jacobi}\\approx%.2fL^2 + %.2fL %.2f$\n$N_{SOR}\\approx%.2fL %.2f$'</span>% (func_jacobi[<span class="number">0</span>], func_jacobi[<span class="number">1</span>], func_jacobi[<span class="number">2</span>], func_sor[<span class="number">0</span>], func_sor[<span class="number">1</span>]), size = <span class="number">15</span>)</span><br><span class="line">pl.show()</span><br></pre></td></tr></table></figure><p><img src="homework8-9.png" alt=""></p><p>可以发现 SOR 方法的迭代次数是显著小于 Jacobi 方法的，根据曲线和拟合得到的参数可以看出 Jacobi 方法的迭代次数有 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.357ex;" xmlns="http://www.w3.org/2000/svg" width="10.146ex" height="2.244ex" role="img" focusable="false" viewBox="0 -833.9 4484.7 991.7"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D441" d="M234 637Q231 637 226 637Q201 637 196 638T191 649Q191 676 202 682Q204 683 299 683Q376 683 387 683T401 677Q612 181 616 168L670 381Q723 592 723 606Q723 633 659 637Q635 637 635 648Q635 650 637 660Q641 676 643 679T653 683Q656 683 684 682T767 680Q817 680 843 681T873 682Q888 682 888 672Q888 650 880 642Q878 637 858 637Q787 633 769 597L620 7Q618 0 599 0Q585 0 582 2Q579 5 453 305L326 604L261 344Q196 88 196 79Q201 46 268 46H278Q284 41 284 38T282 19Q278 6 272 0H259Q228 2 151 2Q123 2 100 2T63 2T46 1Q31 1 31 10Q31 14 34 26T39 40Q41 46 62 46Q130 49 150 85Q154 91 221 362L289 634Q287 635 234 637Z"></path></g><g data-mml-node="TeXAtom" transform="translate(836,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mi" transform="translate(345,0)"><path data-c="1D461" d="M26 385Q19 392 19 395Q19 399 22 411T27 425Q29 430 36 430T87 431H140L159 511Q162 522 166 540T173 566T179 586T187 603T197 615T211 624T229 626Q247 625 254 615T261 596Q261 589 252 549T232 470L222 433Q222 431 272 431H323Q330 424 330 420Q330 398 317 385H210L174 240Q135 80 135 68Q135 26 162 26Q197 26 230 60T283 144Q285 150 288 151T303 153H307Q322 153 322 145Q322 142 319 133Q314 117 301 95T267 48T216 6T155 -11Q125 -11 98 4T59 56Q57 64 57 83V101L92 241Q127 382 128 383Q128 385 77 385H26Z"></path></g><g data-mml-node="mi" transform="translate(706,0)"><path data-c="1D452" d="M39 168Q39 225 58 272T107 350T174 402T244 433T307 442H310Q355 442 388 420T421 355Q421 265 310 237Q261 224 176 223Q139 223 138 221Q138 219 132 186T125 128Q125 81 146 54T209 26T302 45T394 111Q403 121 406 121Q410 121 419 112T429 98T420 82T390 55T344 24T281 -1T205 -11Q126 -11 83 42T39 168ZM373 353Q367 405 305 405Q272 405 244 391T199 357T170 316T154 280T149 261Q149 260 169 260Q282 260 327 284T373 353Z"></path></g><g data-mml-node="mi" transform="translate(1172,0)"><path data-c="1D45F" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g></g><g data-mml-node="mo" transform="translate(2311.4,0)"><path data-c="223C" d="M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z"></path></g><g data-mml-node="msup" transform="translate(3367.2,0)"><g data-mml-node="mi"><path data-c="1D43F" d="M228 637Q194 637 192 641Q191 643 191 649Q191 673 202 682Q204 683 217 683Q271 680 344 680Q485 680 506 683H518Q524 677 524 674T522 656Q517 641 513 637H475Q406 636 394 628Q387 624 380 600T313 336Q297 271 279 198T252 88L243 52Q243 48 252 48T311 46H328Q360 46 379 47T428 54T478 72T522 106T564 161Q580 191 594 228T611 270Q616 273 628 273H641Q647 264 647 262T627 203T583 83T557 9Q555 4 553 3T537 0T494 -1Q483 -1 418 -1T294 0H116Q32 0 32 10Q32 17 34 24Q39 43 44 45Q48 46 59 46H65Q92 46 125 49Q139 52 144 61Q147 65 216 339T285 628Q285 635 228 637Z"></path></g><g data-mml-node="mn" transform="translate(714,363) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g></g></svg></mjx-container>，而对 SOR 方法的迭代次数有 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.357ex;" xmlns="http://www.w3.org/2000/svg" width="9.159ex" height="1.902ex" role="img" focusable="false" viewBox="0 -683 4048.2 840.8"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D441" d="M234 637Q231 637 226 637Q201 637 196 638T191 649Q191 676 202 682Q204 683 299 683Q376 683 387 683T401 677Q612 181 616 168L670 381Q723 592 723 606Q723 633 659 637Q635 637 635 648Q635 650 637 660Q641 676 643 679T653 683Q656 683 684 682T767 680Q817 680 843 681T873 682Q888 682 888 672Q888 650 880 642Q878 637 858 637Q787 633 769 597L620 7Q618 0 599 0Q585 0 582 2Q579 5 453 305L326 604L261 344Q196 88 196 79Q201 46 268 46H278Q284 41 284 38T282 19Q278 6 272 0H259Q228 2 151 2Q123 2 100 2T63 2T46 1Q31 1 31 10Q31 14 34 26T39 40Q41 46 62 46Q130 49 150 85Q154 91 221 362L289 634Q287 635 234 637Z"></path></g><g data-mml-node="TeXAtom" transform="translate(836,-150) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mi"><path data-c="1D456" d="M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mi" transform="translate(345,0)"><path data-c="1D461" d="M26 385Q19 392 19 395Q19 399 22 411T27 425Q29 430 36 430T87 431H140L159 511Q162 522 166 540T173 566T179 586T187 603T197 615T211 624T229 626Q247 625 254 615T261 596Q261 589 252 549T232 470L222 433Q222 431 272 431H323Q330 424 330 420Q330 398 317 385H210L174 240Q135 80 135 68Q135 26 162 26Q197 26 230 60T283 144Q285 150 288 151T303 153H307Q322 153 322 145Q322 142 319 133Q314 117 301 95T267 48T216 6T155 -11Q125 -11 98 4T59 56Q57 64 57 83V101L92 241Q127 382 128 383Q128 385 77 385H26Z"></path></g><g data-mml-node="mi" transform="translate(706,0)"><path data-c="1D452" d="M39 168Q39 225 58 272T107 350T174 402T244 433T307 442H310Q355 442 388 420T421 355Q421 265 310 237Q261 224 176 223Q139 223 138 221Q138 219 132 186T125 128Q125 81 146 54T209 26T302 45T394 111Q403 121 406 121Q410 121 419 112T429 98T420 82T390 55T344 24T281 -1T205 -11Q126 -11 83 42T39 168ZM373 353Q367 405 305 405Q272 405 244 391T199 357T170 316T154 280T149 261Q149 260 169 260Q282 260 327 284T373 353Z"></path></g><g data-mml-node="mi" transform="translate(1172,0)"><path data-c="1D45F" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g></g><g data-mml-node="mo" transform="translate(2311.4,0)"><path data-c="223C" d="M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z"></path></g><g data-mml-node="mi" transform="translate(3367.2,0)"><path data-c="1D43F" d="M228 637Q194 637 192 641Q191 643 191 649Q191 673 202 682Q204 683 217 683Q271 680 344 680Q485 680 506 683H518Q524 677 524 674T522 656Q517 641 513 637H475Q406 636 394 628Q387 624 380 600T313 336Q297 271 279 198T252 88L243 52Q243 48 252 48T311 46H328Q360 46 379 47T428 54T478 72T522 106T564 161Q580 191 594 228T611 270Q616 273 628 273H641Q647 264 647 262T627 203T583 83T557 9Q555 4 553 3T537 0T494 -1Q483 -1 418 -1T294 0H116Q32 0 32 10Q32 17 34 24Q39 43 44 45Q48 46 59 46H65Q92 46 125 49Q139 52 144 61Q147 65 216 339T285 628Q285 635 228 637Z"></path></g></g></g></svg></mjx-container>，这一差距在更高精度的计算中将会十分明显，因此选择 SOR 方法可以显著节约时间。</p><h2 id="致谢">致谢</h2><p>电场绘图部分参考 <a href="https://www.zybuluo.com/zy-0815/note/596878">https://www.zybuluo.com/zy-0815/note/596878</a></p>]]>
    </content>
    <id>https://editst.com/2018/comput-phys-homework8/</id>
    <link href="https://editst.com/2018/comput-phys-homework8/"/>
    <published>2018-11-26T16:59:33.000Z</published>
    <summary>
      <![CDATA[<h2 id="4-19">4.19</h2>
<blockquote>
<p>Study the behavior of our model for Hyperion for different initial conditions. Estimate the Lyapunov exponent from calculation of <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.023ex;" xmlns="http://www.w3.org/2000/svg" width="2.946ex" height="1.643ex" role="img" focusable="false" viewBox="0 -716 1302 726"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="394" d="M51 0Q46 4 46 7Q46 9 215 357T388 709Q391 716 416 716Q439 716 444 709Q447 705 616 357T786 7Q786 4 781 0H51ZM507 344L384 596L137 92L383 91H630Q630 93 507 344Z"></path></g><g data-mml-node="mi" transform="translate(833,0)"><path data-c="1D703" d="M35 200Q35 302 74 415T180 610T319 704Q320 704 327 704T339 705Q393 701 423 656Q462 596 462 495Q462 380 417 261T302 66T168 -10H161Q125 -10 99 10T60 63T41 130T35 200ZM383 566Q383 668 330 668Q294 668 260 623T204 521T170 421T157 371Q206 370 254 370L351 371Q352 372 359 404T375 484T383 566ZM113 132Q113 26 166 26Q181 26 198 36T239 74T287 161T335 307L340 324H145Q145 321 136 286T120 208T113 132Z"></path></g></g></g></svg></mjx-container>, such as those shown in Figure 4.19. Examine how this exponent varies as a function of the eccentricity of the orbit.</p>
</blockquote>]]>
    </summary>
    <title>计算物理第八次作业</title>
    <updated>2020-11-30T15:06:44.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="技术" scheme="https://editst.com/categories/%E6%8A%80%E6%9C%AF/"/>
    <category term="Hexo" scheme="https://editst.com/tags/Hexo/"/>
    <category term="Jupyter" scheme="https://editst.com/tags/Jupyter/"/>
    <category term="Nginx" scheme="https://editst.com/tags/Nginx/"/>
    <content>
      <![CDATA[<p>基于 Nginx ，在服务器同时搭建了 Hexo 和 Jupyter，可以使用 Jupyter 直接在线编辑 Markdown 并发布，同时能够直接看到 Hexo 博客的效果。服务器使用的是 GCP 提供的免费试用服务，域名是 freedom 免费域名，使用 Cloudflare 的 DNS 和 CDN 服务，开启 https 加密。其实就是全部免费啦，可以根据自己的情况换用不同的服务。</p><span id="more"></span><h2 id="环境安装">环境安装</h2><h3 id="安装-Anaconda">安装 Anaconda</h3><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">wget https://repo.anaconda.com/archive/Anaconda3-5.3.1-Linux-x86_64.sh</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">bash Anaconda3-5.3.1-Linux-x86_64.sh</span></span><br></pre></td></tr></table></figure><h3 id="安装-Node-js-和-Git">安装 Node.js 和 Git</h3><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">sudo apt-get install git-core</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">wget -qO- https://raw.github.com/creationix/nvm/v0.33.11/install.sh | sh</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">nvm install stable</span></span><br></pre></td></tr></table></figure><h3 id="安装-Hexo">安装 Hexo</h3><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">npm install -g hexo-cli</span></span><br></pre></td></tr></table></figure><h2 id="Hexo-配置">Hexo 配置</h2><p>首先执行下面命令建站</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">hexo int hexo</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash"><span class="built_in">cd</span> hexo</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">npm install</span></span><br></pre></td></tr></table></figure><p>然后生成静态文件</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">hexo g</span></span><br></pre></td></tr></table></figure><p>这里介绍了最简单的配置，其他详细信息请到 Hexo 官网查看</p><h2 id="配置-Jupyter-Notebook">配置 Jupyter Notebook</h2><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">jupyter notebook --generate-config</span></span><br></pre></td></tr></table></figure><p>生成配置文件，位置为 <code>~/.jupyter/jupyter_notebook_config.py</code></p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">jupyter notebook password</span></span><br></pre></td></tr></table></figure><p>设置密码，文件位于 <code>~/.jupyter/jupyter_notebook_config.json</code></p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">&#123;</span></span><br><span class="line">  <span class="attr">&quot;NotebookApp&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;password&quot;</span><span class="punctuation">:</span> <span class="string">&quot;sha1:123456789:0987654321abcdefghijklmno&quot;</span></span><br><span class="line">  <span class="punctuation">&#125;</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure><p>将 psaaword 部分复制到配置文件中，可以参考</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#c.NotebookApp.base_url = &#x27;/jupyter&#x27;</span></span><br><span class="line">c.NotebookApp.password = <span class="string">&#x27;sha1:123456789:0987654321abcdefghijklmno&#x27;</span></span><br><span class="line">c.NotebookApp.ip = <span class="string">&#x27;localhost&#x27;</span></span><br><span class="line">c.NotebookApp.port = <span class="number">6789</span></span><br><span class="line">c.NotebookApp.port_retries = <span class="number">50</span></span><br><span class="line">c.NotebookApp.allow_origin = <span class="string">&#x27;*&#x27;</span></span><br><span class="line">c.NotebookApp.contents_manager_class = <span class="string">&#x27;notedown.NotedownContentsManager&#x27;</span></span><br><span class="line">c.NotebookApp.open_browser = <span class="literal">False</span></span><br></pre></td></tr></table></figure><p>然后使用 nohup 后台运行</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash"><span class="built_in">nohup</span> jupyter notebook &amp;</span></span><br></pre></td></tr></table></figure><h2 id="配置-Nginx">配置 Nginx</h2><p>首先安装 Nginx</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">sudo apt-get install nginx</span></span><br></pre></td></tr></table></figure><p>然后编辑 Nginx 配置文件，默认位于 <code>/etc/nginx/site-enabled/default</code>，可以参考下面配置，SSL 证书可以直接下载 Cloudflare 提供的免费证书，或者使用 Let’s encrypt 等申请。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br></pre></td><td class="code"><pre><span class="line">server &#123;</span><br><span class="line">  listen 80 jupyter;</span><br><span class="line">  listen [::]:80 jupyter;</span><br><span class="line">  listen 443 ssl jupyter;</span><br><span class="line">  listen [::]:443 ssl jupyter;</span><br><span class="line">  ssl on;</span><br><span class="line">  ssl_certificate /etc/ssl/private/private.pem;</span><br><span class="line">  ssl_certificate_key /etc/ssl//private/private.key;</span><br><span class="line"></span><br><span class="line">  access_log     /var/log/nginx/jupyter.access.log;</span><br><span class="line">  error_log      /var/log/nginx/jupyter.error.log;</span><br><span class="line"></span><br><span class="line">  root /var/www/root;</span><br><span class="line">  server_name jupyter.domain.example;</span><br><span class="line">  index index.html index.htm index.nginx-debian.html;</span><br><span class="line"></span><br><span class="line">  location / &#123;</span><br><span class="line">    proxy_pass http://127.0.0.1:6789;</span><br><span class="line">    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;</span><br><span class="line">    proxy_set_header X-Real-IP $remote_addr;</span><br><span class="line">    proxy_set_header Host $http_host;</span><br><span class="line">    proxy_http_version 1.1;</span><br><span class="line">    proxy_redirect off;</span><br><span class="line">    proxy_buffering off;</span><br><span class="line">    proxy_set_header Upgrade $http_upgrade;</span><br><span class="line">    proxy_set_header Connection &quot;upgrade&quot;;</span><br><span class="line">    proxy_read_timeout 86400;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">server &#123;</span><br><span class="line">  listen 80 hexo;</span><br><span class="line">  listen [::]:80 hexo;</span><br><span class="line">  listen 443 ssl hexo;</span><br><span class="line">  listen [::]:443 ssl hexo;</span><br><span class="line">  ssl on;</span><br><span class="line">  ssl_certificate /etc/ssl/private/private.pem;</span><br><span class="line">  ssl_certificate_key /etc/ssl//private/private.key;</span><br><span class="line"></span><br><span class="line">  access_log     /var/log/nginx/hexo.access.log;</span><br><span class="line">  error_log      /var/log/nginx/hexo.error.log;</span><br><span class="line"></span><br><span class="line">  root ~/hexo/public;</span><br><span class="line">  server_name jupyter.domain.example;</span><br><span class="line">  index index.html index.htm index.nginx-debian.html;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>然后重新加载 Nginx</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">sudo systemctl restart nginx</span></span><br></pre></td></tr></table></figure><p>到此应该就可以正常访问 Jupyter 和 Hexo 了，之后可以使用 Jupyter Notebook 编辑文章，使用自带的 Terminal 进行生成静态网页。也可以参考官方将网页发布到 GitHub 并绑定自己域名访问。</p>]]>
    </content>
    <id>https://editst.com/2018/jupyter/</id>
    <link href="https://editst.com/2018/jupyter/"/>
    <published>2018-11-23T03:38:26.000Z</published>
    <summary>
      <![CDATA[<p>基于 Nginx ，在服务器同时搭建了 Hexo 和 Jupyter，可以使用 Jupyter 直接在线编辑 Markdown 并发布，同时能够直接看到 Hexo 博客的效果。服务器使用的是 GCP 提供的免费试用服务，域名是 freedom 免费域名，使用 Cloudflare 的 DNS 和 CDN 服务，开启 https 加密。其实就是全部免费啦，可以根据自己的情况换用不同的服务。</p>]]>
    </summary>
    <title>基于 Nginx 建立 Hexo 和 Jupyter 实现在线编辑和科学计算</title>
    <updated>2021-12-30T16:31:13.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>Editst</name>
    </author>
    <category term="物理" scheme="https://editst.com/categories/%E7%89%A9%E7%90%86/"/>
    <category term="计算物理" scheme="https://editst.com/tags/%E8%AE%A1%E7%AE%97%E7%89%A9%E7%90%86/"/>
    <category term="Python" scheme="https://editst.com/tags/Python/"/>
    <content>
      <![CDATA[<h2 id="Problem-4-9">Problem 4.9</h2><blockquote><p>In this section we saw that orbits are unstable for any value of <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.439ex;" xmlns="http://www.w3.org/2000/svg" width="1.281ex" height="2.034ex" role="img" focusable="false" viewBox="0 -705 566 899"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FD" d="M29 -194Q23 -188 23 -186Q23 -183 102 134T186 465Q208 533 243 584T309 658Q365 705 429 705H431Q493 705 533 667T573 570Q573 465 469 396L482 383Q533 332 533 252Q533 139 448 65T257 -10Q227 -10 203 -2T165 17T143 40T131 59T126 65L62 -188Q60 -194 42 -194H29ZM353 431Q392 431 427 419L432 422Q436 426 439 429T449 439T461 453T472 471T484 495T493 524T501 560Q503 569 503 593Q503 611 502 616Q487 667 426 667Q384 667 347 643T286 582T247 514T224 455Q219 439 186 308T152 168Q151 163 151 147Q151 99 173 68Q204 26 260 26Q302 26 349 51T425 137Q441 171 449 214T457 279Q457 337 422 372Q380 358 347 358H337Q258 358 258 389Q258 396 261 403Q275 431 353 431Z"></path></g></g></g></svg></mjx-container> that is not precisely 2 in (4.12). A related question, which we did not address (until now), is <em>how</em> unstable an orbit might be. That is, how long will it take for an unstable orbit to become obvious. The answer to this question depends on the nature of the orbit. If the initial velocity is chosen so as to make the orbit precisely circular, then the value of <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.439ex;" xmlns="http://www.w3.org/2000/svg" width="1.281ex" height="2.034ex" role="img" focusable="false" viewBox="0 -705 566 899"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FD" d="M29 -194Q23 -188 23 -186Q23 -183 102 134T186 465Q208 533 243 584T309 658Q365 705 429 705H431Q493 705 533 667T573 570Q573 465 469 396L482 383Q533 332 533 252Q533 139 448 65T257 -10Q227 -10 203 -2T165 17T143 40T131 59T126 65L62 -188Q60 -194 42 -194H29ZM353 431Q392 431 427 419L432 422Q436 426 439 429T449 439T461 453T472 471T484 495T493 524T501 560Q503 569 503 593Q503 611 502 616Q487 667 426 667Q384 667 347 643T286 582T247 514T224 455Q219 439 186 308T152 168Q151 163 151 147Q151 99 173 68Q204 26 260 26Q302 26 349 51T425 137Q441 171 449 214T457 279Q457 337 422 372Q380 358 347 358H337Q258 358 258 389Q258 396 261 403Q275 431 353 431Z"></path></g></g></g></svg></mjx-container> in (4.12) will make absolutely no difference. Of course, in practice it is impossible to construct an orbit that is exactly circular, so the instabilities when <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.486ex;" xmlns="http://www.w3.org/2000/svg" width="5.429ex" height="2.106ex" role="img" focusable="false" viewBox="0 -716 2399.6 931"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FD" d="M29 -194Q23 -188 23 -186Q23 -183 102 134T186 465Q208 533 243 584T309 658Q365 705 429 705H431Q493 705 533 667T573 570Q573 465 469 396L482 383Q533 332 533 252Q533 139 448 65T257 -10Q227 -10 203 -2T165 17T143 40T131 59T126 65L62 -188Q60 -194 42 -194H29ZM353 431Q392 431 427 419L432 422Q436 426 439 429T449 439T461 453T472 471T484 495T493 524T501 560Q503 569 503 593Q503 611 502 616Q487 667 426 667Q384 667 347 643T286 582T247 514T224 455Q219 439 186 308T152 168Q151 163 151 147Q151 99 173 68Q204 26 260 26Q302 26 349 51T425 137Q441 171 449 214T457 279Q457 337 422 372Q380 358 347 358H337Q258 358 258 389Q258 396 261 403Q275 431 353 431Z"></path></g><g data-mml-node="mo" transform="translate(843.8,0)"><path data-c="2260" d="M166 -215T159 -215T147 -212T141 -204T139 -197Q139 -190 144 -183L306 133H70Q56 140 56 153Q56 168 72 173H327L406 327H72Q56 332 56 347Q56 360 70 367H426Q597 702 602 707Q605 716 618 716Q625 716 630 712T636 703T638 696Q638 692 471 367H707Q722 359 722 347Q722 336 708 328L451 327L371 173H708Q722 163 722 153Q722 140 707 133H351Q175 -210 170 -212Q166 -215 159 -215Z"></path></g><g data-mml-node="mn" transform="translate(1899.6,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g></svg></mjx-container> will always be apparent given enough time. Even so, orbits that start out as nearly circular will remain almost stable for a longer period than those that are highly elliptical. Investigate this by studying orbits with the same value of <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.439ex;" xmlns="http://www.w3.org/2000/svg" width="1.281ex" height="2.034ex" role="img" focusable="false" viewBox="0 -705 566 899"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FD" d="M29 -194Q23 -188 23 -186Q23 -183 102 134T186 465Q208 533 243 584T309 658Q365 705 429 705H431Q493 705 533 667T573 570Q573 465 469 396L482 383Q533 332 533 252Q533 139 448 65T257 -10Q227 -10 203 -2T165 17T143 40T131 59T126 65L62 -188Q60 -194 42 -194H29ZM353 431Q392 431 427 419L432 422Q436 426 439 429T449 439T461 453T472 471T484 495T493 524T501 560Q503 569 503 593Q503 611 502 616Q487 667 426 667Q384 667 347 643T286 582T247 514T224 455Q219 439 186 308T152 168Q151 163 151 147Q151 99 173 68Q204 26 260 26Q302 26 349 51T425 137Q441 171 449 214T457 279Q457 337 422 372Q380 358 347 358H337Q258 358 258 389Q258 396 261 403Q275 431 353 431Z"></path></g></g></g></svg></mjx-container> (say, <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.439ex;" xmlns="http://www.w3.org/2000/svg" width="8.32ex" height="2.034ex" role="img" focusable="false" viewBox="0 -705 3677.6 899"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FD" d="M29 -194Q23 -188 23 -186Q23 -183 102 134T186 465Q208 533 243 584T309 658Q365 705 429 705H431Q493 705 533 667T573 570Q573 465 469 396L482 383Q533 332 533 252Q533 139 448 65T257 -10Q227 -10 203 -2T165 17T143 40T131 59T126 65L62 -188Q60 -194 42 -194H29ZM353 431Q392 431 427 419L432 422Q436 426 439 429T449 439T461 453T472 471T484 495T493 524T501 560Q503 569 503 593Q503 611 502 616Q487 667 426 667Q384 667 347 643T286 582T247 514T224 455Q219 439 186 308T152 168Q151 163 151 147Q151 99 173 68Q204 26 260 26Q302 26 349 51T425 137Q441 171 449 214T457 279Q457 337 422 372Q380 358 347 358H337Q258 358 258 389Q258 396 261 403Q275 431 353 431Z"></path></g><g data-mml-node="mo" transform="translate(843.8,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mn" transform="translate(1899.6,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(778,0)"></path><path data-c="35" d="M164 157Q164 133 148 117T109 101H102Q148 22 224 22Q294 22 326 82Q345 115 345 210Q345 313 318 349Q292 382 260 382H254Q176 382 136 314Q132 307 129 306T114 304Q97 304 95 310Q93 314 93 485V614Q93 664 98 664Q100 666 102 666Q103 666 123 658T178 642T253 634Q324 634 389 662Q397 666 402 666Q410 666 410 648V635Q328 538 205 538Q174 538 149 544L139 546V374Q158 388 169 396T205 412T256 420Q337 420 393 355T449 201Q449 109 385 44T229 -22Q148 -22 99 32T50 154Q50 178 61 192T84 210T107 214Q132 214 148 197T164 157Z" transform="translate(1278,0)"></path></g></g></g></svg></mjx-container>) and comparing the hebavior with different values of the ellipticity of the orbit. You should find that the orientation of orbits that are more nearly circular will rotate more slowly than those that are highly elliptical. (尝试利用不是2的 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.439ex;" xmlns="http://www.w3.org/2000/svg" width="1.281ex" height="2.034ex" role="img" focusable="false" viewBox="0 -705 566 899"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FD" d="M29 -194Q23 -188 23 -186Q23 -183 102 134T186 465Q208 533 243 584T309 658Q365 705 429 705H431Q493 705 533 667T573 570Q573 465 469 396L482 383Q533 332 533 252Q533 139 448 65T257 -10Q227 -10 203 -2T165 17T143 40T131 59T126 65L62 -188Q60 -194 42 -194H29ZM353 431Q392 431 427 419L432 422Q436 426 439 429T449 439T461 453T472 471T484 495T493 524T501 560Q503 569 503 593Q503 611 502 616Q487 667 426 667Q384 667 347 643T286 582T247 514T224 455Q219 439 186 308T152 168Q151 163 151 147Q151 99 173 68Q204 26 260 26Q302 26 349 51T425 137Q441 171 449 214T457 279Q457 337 422 372Q380 358 347 358H337Q258 358 258 389Q258 396 261 403Q275 431 353 431Z"></path></g></g></g></svg></mjx-container> 值构造圆形轨道，并讨论各种不同轨道情况下的稳定性。)</p></blockquote><span id="more"></span><p>根据伟大的牛顿万有引力公式</p><p><mjx-container class="MathJax" jax="SVG" display="true"><svg style="vertical-align: -1.654ex;" xmlns="http://www.w3.org/2000/svg" width="15.71ex" height="4.778ex" role="img" focusable="false" viewBox="0 -1381 6943.7 2111.9"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D439" d="M48 1Q31 1 31 11Q31 13 34 25Q38 41 42 43T65 46Q92 46 125 49Q139 52 144 61Q146 66 215 342T285 622Q285 629 281 629Q273 632 228 634H197Q191 640 191 642T193 659Q197 676 203 680H742Q749 676 749 669Q749 664 736 557T722 447Q720 440 702 440H690Q683 445 683 453Q683 454 686 477T689 530Q689 560 682 579T663 610T626 626T575 633T503 634H480Q398 633 393 631Q388 629 386 623Q385 622 352 492L320 363H375Q378 363 398 363T426 364T448 367T472 374T489 386Q502 398 511 419T524 457T529 475Q532 480 548 480H560Q567 475 567 470Q567 467 536 339T502 207Q500 200 482 200H470Q463 206 463 212Q463 215 468 234T473 274Q473 303 453 310T364 317H309L277 190Q245 66 245 60Q245 46 334 46H359Q365 40 365 39T363 19Q359 6 353 0H336Q295 2 185 2Q120 2 86 2T48 1Z"></path></g><g data-mml-node="mi" transform="translate(676,-150) scale(0.707)"><path data-c="1D43A" d="M50 252Q50 367 117 473T286 641T490 704Q580 704 633 653Q642 643 648 636T656 626L657 623Q660 623 684 649Q691 655 699 663T715 679T725 690L740 705H746Q760 705 760 698Q760 694 728 561Q692 422 692 421Q690 416 687 415T669 413H653Q647 419 647 422Q647 423 648 429T650 449T651 481Q651 552 619 605T510 659Q492 659 471 656T418 643T357 615T294 567T236 496T189 394T158 260Q156 242 156 221Q156 173 170 136T206 79T256 45T308 28T353 24Q407 24 452 47T514 106Q517 114 529 161T541 214Q541 222 528 224T468 227H431Q425 233 425 235T427 254Q431 267 437 273H454Q494 271 594 271Q634 271 659 271T695 272T707 272Q721 272 721 263Q721 261 719 249Q714 230 709 228Q706 227 694 227Q674 227 653 224Q646 221 643 215T629 164Q620 131 614 108Q589 6 586 3Q584 1 581 1Q571 1 553 21T530 52Q530 53 528 52T522 47Q448 -22 322 -22Q201 -22 126 55T50 252Z"></path></g></g><g data-mml-node="mo" transform="translate(1559.6,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mfrac" transform="translate(2615.3,0)"><g data-mml-node="mrow" transform="translate(220,676)"><g data-mml-node="mi"><path data-c="1D43A" d="M50 252Q50 367 117 473T286 641T490 704Q580 704 633 653Q642 643 648 636T656 626L657 623Q660 623 684 649Q691 655 699 663T715 679T725 690L740 705H746Q760 705 760 698Q760 694 728 561Q692 422 692 421Q690 416 687 415T669 413H653Q647 419 647 422Q647 423 648 429T650 449T651 481Q651 552 619 605T510 659Q492 659 471 656T418 643T357 615T294 567T236 496T189 394T158 260Q156 242 156 221Q156 173 170 136T206 79T256 45T308 28T353 24Q407 24 452 47T514 106Q517 114 529 161T541 214Q541 222 528 224T468 227H431Q425 233 425 235T427 254Q431 267 437 273H454Q494 271 594 271Q634 271 659 271T695 272T707 272Q721 272 721 263Q721 261 719 249Q714 230 709 228Q706 227 694 227Q674 227 653 224Q646 221 643 215T629 164Q620 131 614 108Q589 6 586 3Q584 1 581 1Q571 1 553 21T530 52Q530 53 528 52T522 47Q448 -22 322 -22Q201 -22 126 55T50 252Z"></path></g><g data-mml-node="msub" transform="translate(786,0)"><g data-mml-node="mi"><path data-c="1D440" d="M289 629Q289 635 232 637Q208 637 201 638T194 648Q194 649 196 659Q197 662 198 666T199 671T201 676T203 679T207 681T212 683T220 683T232 684Q238 684 262 684T307 683Q386 683 398 683T414 678Q415 674 451 396L487 117L510 154Q534 190 574 254T662 394Q837 673 839 675Q840 676 842 678T846 681L852 683H948Q965 683 988 683T1017 684Q1051 684 1051 673Q1051 668 1048 656T1045 643Q1041 637 1008 637Q968 636 957 634T939 623Q936 618 867 340T797 59Q797 55 798 54T805 50T822 48T855 46H886Q892 37 892 35Q892 19 885 5Q880 0 869 0Q864 0 828 1T736 2Q675 2 644 2T609 1Q592 1 592 11Q592 13 594 25Q598 41 602 43T625 46Q652 46 685 49Q699 52 704 61Q706 65 742 207T813 490T848 631L654 322Q458 10 453 5Q451 4 449 3Q444 0 433 0Q418 0 415 7Q413 11 374 317L335 624L267 354Q200 88 200 79Q206 46 272 46H282Q288 41 289 37T286 19Q282 3 278 1Q274 0 267 0Q265 0 255 0T221 1T157 2Q127 2 95 1T58 0Q43 0 39 2T35 11Q35 13 38 25T43 40Q45 46 65 46Q135 46 154 86Q158 92 223 354T289 629Z"></path></g><g data-mml-node="mi" transform="translate(1003,-150) scale(0.707)"><path data-c="1D446" d="M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"></path></g></g><g data-mml-node="msub" transform="translate(2295.1,0)"><g data-mml-node="mi"><path data-c="1D440" d="M289 629Q289 635 232 637Q208 637 201 638T194 648Q194 649 196 659Q197 662 198 666T199 671T201 676T203 679T207 681T212 683T220 683T232 684Q238 684 262 684T307 683Q386 683 398 683T414 678Q415 674 451 396L487 117L510 154Q534 190 574 254T662 394Q837 673 839 675Q840 676 842 678T846 681L852 683H948Q965 683 988 683T1017 684Q1051 684 1051 673Q1051 668 1048 656T1045 643Q1041 637 1008 637Q968 636 957 634T939 623Q936 618 867 340T797 59Q797 55 798 54T805 50T822 48T855 46H886Q892 37 892 35Q892 19 885 5Q880 0 869 0Q864 0 828 1T736 2Q675 2 644 2T609 1Q592 1 592 11Q592 13 594 25Q598 41 602 43T625 46Q652 46 685 49Q699 52 704 61Q706 65 742 207T813 490T848 631L654 322Q458 10 453 5Q451 4 449 3Q444 0 433 0Q418 0 415 7Q413 11 374 317L335 624L267 354Q200 88 200 79Q206 46 272 46H282Q288 41 289 37T286 19Q282 3 278 1Q274 0 267 0Q265 0 255 0T221 1T157 2Q127 2 95 1T58 0Q43 0 39 2T35 11Q35 13 38 25T43 40Q45 46 65 46Q135 46 154 86Q158 92 223 354T289 629Z"></path></g><g data-mml-node="mi" transform="translate(1003,-150) scale(0.707)"><path data-c="1D438" d="M492 213Q472 213 472 226Q472 230 477 250T482 285Q482 316 461 323T364 330H312Q311 328 277 192T243 52Q243 48 254 48T334 46Q428 46 458 48T518 61Q567 77 599 117T670 248Q680 270 683 272Q690 274 698 274Q718 274 718 261Q613 7 608 2Q605 0 322 0H133Q31 0 31 11Q31 13 34 25Q38 41 42 43T65 46Q92 46 125 49Q139 52 144 61Q146 66 215 342T285 622Q285 629 281 629Q273 632 228 634H197Q191 640 191 642T193 659Q197 676 203 680H757Q764 676 764 669Q764 664 751 557T737 447Q735 440 717 440H705Q698 445 698 453L701 476Q704 500 704 528Q704 558 697 578T678 609T643 625T596 632T532 634H485Q397 633 392 631Q388 629 386 622Q385 619 355 499T324 377Q347 376 372 376H398Q464 376 489 391T534 472Q538 488 540 490T557 493Q562 493 565 493T570 492T572 491T574 487T577 483L544 351Q511 218 508 216Q505 213 492 213Z"></path></g></g></g><g data-mml-node="msup" transform="translate(1720.4,-719.9)"><g data-mml-node="mi"><path data-c="1D45F" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mn" transform="translate(484,289) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g><rect width="4088.3" height="60" x="120" y="220"></rect></g></g></g></svg></mjx-container></p><p>我们可以直接写出有心力场下行星的运动方程：</p><p><mjx-container class="MathJax" jax="SVG" display="true"><svg style="vertical-align: -2.091ex;" xmlns="http://www.w3.org/2000/svg" width="59.612ex" height="5.369ex" role="img" focusable="false" viewBox="0 -1449 26348.3 2373.2"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mfrac"><g data-mml-node="mrow" transform="translate(220,676)"><g data-mml-node="mi"><path data-c="1D451" d="M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z"></path></g><g data-mml-node="msub" transform="translate(520,0)"><g data-mml-node="mi"><path data-c="1D463" d="M173 380Q173 405 154 405Q130 405 104 376T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Q21 294 29 316T53 368T97 419T160 441Q202 441 225 417T249 361Q249 344 246 335Q246 329 231 291T200 202T182 113Q182 86 187 69Q200 26 250 26Q287 26 319 60T369 139T398 222T409 277Q409 300 401 317T383 343T365 361T357 383Q357 405 376 424T417 443Q436 443 451 425T467 367Q467 340 455 284T418 159T347 40T241 -11Q177 -11 139 22Q102 54 102 117Q102 148 110 181T151 298Q173 362 173 380Z"></path></g><g data-mml-node="mi" transform="translate(518,-150) scale(0.707)"><path data-c="1D465" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path></g></g></g><g data-mml-node="mrow" transform="translate(525.7,-686)"><g data-mml-node="mi"><path data-c="1D451" d="M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z"></path></g><g data-mml-node="mi" transform="translate(520,0)"><path data-c="1D461" d="M26 385Q19 392 19 395Q19 399 22 411T27 425Q29 430 36 430T87 431H140L159 511Q162 522 166 540T173 566T179 586T187 603T197 615T211 624T229 626Q247 625 254 615T261 596Q261 589 252 549T232 470L222 433Q222 431 272 431H323Q330 424 330 420Q330 398 317 385H210L174 240Q135 80 135 68Q135 26 162 26Q197 26 230 60T283 144Q285 150 288 151T303 153H307Q322 153 322 145Q322 142 319 133Q314 117 301 95T267 48T216 6T155 -11Q125 -11 98 4T59 56Q57 64 57 83V101L92 241Q127 382 128 383Q128 385 77 385H26Z"></path></g></g><rect width="1692.5" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(2210.2,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mo" transform="translate(3266,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="mfrac" transform="translate(4044,0)"><g data-mml-node="mrow" transform="translate(220,676)"><g data-mml-node="mi"><path data-c="1D43A" d="M50 252Q50 367 117 473T286 641T490 704Q580 704 633 653Q642 643 648 636T656 626L657 623Q660 623 684 649Q691 655 699 663T715 679T725 690L740 705H746Q760 705 760 698Q760 694 728 561Q692 422 692 421Q690 416 687 415T669 413H653Q647 419 647 422Q647 423 648 429T650 449T651 481Q651 552 619 605T510 659Q492 659 471 656T418 643T357 615T294 567T236 496T189 394T158 260Q156 242 156 221Q156 173 170 136T206 79T256 45T308 28T353 24Q407 24 452 47T514 106Q517 114 529 161T541 214Q541 222 528 224T468 227H431Q425 233 425 235T427 254Q431 267 437 273H454Q494 271 594 271Q634 271 659 271T695 272T707 272Q721 272 721 263Q721 261 719 249Q714 230 709 228Q706 227 694 227Q674 227 653 224Q646 221 643 215T629 164Q620 131 614 108Q589 6 586 3Q584 1 581 1Q571 1 553 21T530 52Q530 53 528 52T522 47Q448 -22 322 -22Q201 -22 126 55T50 252Z"></path></g><g data-mml-node="msub" transform="translate(786,0)"><g data-mml-node="mi"><path data-c="1D440" d="M289 629Q289 635 232 637Q208 637 201 638T194 648Q194 649 196 659Q197 662 198 666T199 671T201 676T203 679T207 681T212 683T220 683T232 684Q238 684 262 684T307 683Q386 683 398 683T414 678Q415 674 451 396L487 117L510 154Q534 190 574 254T662 394Q837 673 839 675Q840 676 842 678T846 681L852 683H948Q965 683 988 683T1017 684Q1051 684 1051 673Q1051 668 1048 656T1045 643Q1041 637 1008 637Q968 636 957 634T939 623Q936 618 867 340T797 59Q797 55 798 54T805 50T822 48T855 46H886Q892 37 892 35Q892 19 885 5Q880 0 869 0Q864 0 828 1T736 2Q675 2 644 2T609 1Q592 1 592 11Q592 13 594 25Q598 41 602 43T625 46Q652 46 685 49Q699 52 704 61Q706 65 742 207T813 490T848 631L654 322Q458 10 453 5Q451 4 449 3Q444 0 433 0Q418 0 415 7Q413 11 374 317L335 624L267 354Q200 88 200 79Q206 46 272 46H282Q288 41 289 37T286 19Q282 3 278 1Q274 0 267 0Q265 0 255 0T221 1T157 2Q127 2 95 1T58 0Q43 0 39 2T35 11Q35 13 38 25T43 40Q45 46 65 46Q135 46 154 86Q158 92 223 354T289 629Z"></path></g><g data-mml-node="mi" transform="translate(1003,-150) scale(0.707)"><path data-c="1D446" d="M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"></path></g></g><g data-mml-node="mi" transform="translate(2295.1,0)"><path data-c="1D465" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path></g></g><g data-mml-node="msup" transform="translate(1149.3,-719.2)"><g data-mml-node="mi"><path data-c="1D465" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path></g><g data-mml-node="mn" transform="translate(605,289) scale(0.707)"><path data-c="33" d="M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z"></path></g></g><rect width="3067.1" height="60" x="120" y="220"></rect></g><g data-mml-node="mstyle" transform="translate(7351.1,0)"><g data-mml-node="mspace"></g></g><g data-mml-node="mfrac" transform="translate(9351.1,0)"><g data-mml-node="mrow" transform="translate(220,676)"><g data-mml-node="mi"><path data-c="1D451" d="M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z"></path></g><g data-mml-node="mi" transform="translate(520,0)"><path data-c="1D465" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path></g></g><g data-mml-node="mrow" transform="translate(325.5,-686)"><g data-mml-node="mi"><path data-c="1D451" d="M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z"></path></g><g data-mml-node="mi" transform="translate(520,0)"><path data-c="1D461" d="M26 385Q19 392 19 395Q19 399 22 411T27 425Q29 430 36 430T87 431H140L159 511Q162 522 166 540T173 566T179 586T187 603T197 615T211 624T229 626Q247 625 254 615T261 596Q261 589 252 549T232 470L222 433Q222 431 272 431H323Q330 424 330 420Q330 398 317 385H210L174 240Q135 80 135 68Q135 26 162 26Q197 26 230 60T283 144Q285 150 288 151T303 153H307Q322 153 322 145Q322 142 319 133Q314 117 301 95T267 48T216 6T155 -11Q125 -11 98 4T59 56Q57 64 57 83V101L92 241Q127 382 128 383Q128 385 77 385H26Z"></path></g></g><rect width="1292" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(11160.9,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="msub" transform="translate(12216.7,0)"><g data-mml-node="mi"><path data-c="1D463" d="M173 380Q173 405 154 405Q130 405 104 376T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Q21 294 29 316T53 368T97 419T160 441Q202 441 225 417T249 361Q249 344 246 335Q246 329 231 291T200 202T182 113Q182 86 187 69Q200 26 250 26Q287 26 319 60T369 139T398 222T409 277Q409 300 401 317T383 343T365 361T357 383Q357 405 376 424T417 443Q436 443 451 425T467 367Q467 340 455 284T418 159T347 40T241 -11Q177 -11 139 22Q102 54 102 117Q102 148 110 181T151 298Q173 362 173 380Z"></path></g><g data-mml-node="mi" transform="translate(518,-150) scale(0.707)"><path data-c="1D465" d="M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z"></path></g></g><g data-mml-node="mtext" transform="translate(13189.1,0)"><path data-c="A0" d=""></path></g><g data-mml-node="mfrac" transform="translate(13439.1,0)"><g data-mml-node="mrow" transform="translate(220,755)"><g data-mml-node="mi"><path data-c="1D451" d="M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z"></path></g><g data-mml-node="msub" transform="translate(520,0)"><g data-mml-node="mi"><path data-c="1D463" d="M173 380Q173 405 154 405Q130 405 104 376T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Q21 294 29 316T53 368T97 419T160 441Q202 441 225 417T249 361Q249 344 246 335Q246 329 231 291T200 202T182 113Q182 86 187 69Q200 26 250 26Q287 26 319 60T369 139T398 222T409 277Q409 300 401 317T383 343T365 361T357 383Q357 405 376 424T417 443Q436 443 451 425T467 367Q467 340 455 284T418 159T347 40T241 -11Q177 -11 139 22Q102 54 102 117Q102 148 110 181T151 298Q173 362 173 380Z"></path></g><g data-mml-node="mi" transform="translate(518,-150) scale(0.707)"><path data-c="1D466" d="M21 287Q21 301 36 335T84 406T158 442Q199 442 224 419T250 355Q248 336 247 334Q247 331 231 288T198 191T182 105Q182 62 196 45T238 27Q261 27 281 38T312 61T339 94Q339 95 344 114T358 173T377 247Q415 397 419 404Q432 431 462 431Q475 431 483 424T494 412T496 403Q496 390 447 193T391 -23Q363 -106 294 -155T156 -205Q111 -205 77 -183T43 -117Q43 -95 50 -80T69 -58T89 -48T106 -45Q150 -45 150 -87Q150 -107 138 -122T115 -142T102 -147L99 -148Q101 -153 118 -160T152 -167H160Q177 -167 186 -165Q219 -156 247 -127T290 -65T313 -9T321 21L315 17Q309 13 296 6T270 -6Q250 -11 231 -11Q185 -11 150 11T104 82Q103 89 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g></g><g data-mml-node="mrow" transform="translate(496.7,-686)"><g data-mml-node="mi"><path data-c="1D451" d="M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z"></path></g><g data-mml-node="mi" transform="translate(520,0)"><path data-c="1D461" d="M26 385Q19 392 19 395Q19 399 22 411T27 425Q29 430 36 430T87 431H140L159 511Q162 522 166 540T173 566T179 586T187 603T197 615T211 624T229 626Q247 625 254 615T261 596Q261 589 252 549T232 470L222 433Q222 431 272 431H323Q330 424 330 420Q330 398 317 385H210L174 240Q135 80 135 68Q135 26 162 26Q197 26 230 60T283 144Q285 150 288 151T303 153H307Q322 153 322 145Q322 142 319 133Q314 117 301 95T267 48T216 6T155 -11Q125 -11 98 4T59 56Q57 64 57 83V101L92 241Q127 382 128 383Q128 385 77 385H26Z"></path></g></g><rect width="1634.5" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(15591.4,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mo" transform="translate(16647.2,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="mfrac" transform="translate(17425.2,0)"><g data-mml-node="mrow" transform="translate(220,676)"><g data-mml-node="mi"><path data-c="1D43A" d="M50 252Q50 367 117 473T286 641T490 704Q580 704 633 653Q642 643 648 636T656 626L657 623Q660 623 684 649Q691 655 699 663T715 679T725 690L740 705H746Q760 705 760 698Q760 694 728 561Q692 422 692 421Q690 416 687 415T669 413H653Q647 419 647 422Q647 423 648 429T650 449T651 481Q651 552 619 605T510 659Q492 659 471 656T418 643T357 615T294 567T236 496T189 394T158 260Q156 242 156 221Q156 173 170 136T206 79T256 45T308 28T353 24Q407 24 452 47T514 106Q517 114 529 161T541 214Q541 222 528 224T468 227H431Q425 233 425 235T427 254Q431 267 437 273H454Q494 271 594 271Q634 271 659 271T695 272T707 272Q721 272 721 263Q721 261 719 249Q714 230 709 228Q706 227 694 227Q674 227 653 224Q646 221 643 215T629 164Q620 131 614 108Q589 6 586 3Q584 1 581 1Q571 1 553 21T530 52Q530 53 528 52T522 47Q448 -22 322 -22Q201 -22 126 55T50 252Z"></path></g><g data-mml-node="msub" transform="translate(786,0)"><g data-mml-node="mi"><path data-c="1D440" d="M289 629Q289 635 232 637Q208 637 201 638T194 648Q194 649 196 659Q197 662 198 666T199 671T201 676T203 679T207 681T212 683T220 683T232 684Q238 684 262 684T307 683Q386 683 398 683T414 678Q415 674 451 396L487 117L510 154Q534 190 574 254T662 394Q837 673 839 675Q840 676 842 678T846 681L852 683H948Q965 683 988 683T1017 684Q1051 684 1051 673Q1051 668 1048 656T1045 643Q1041 637 1008 637Q968 636 957 634T939 623Q936 618 867 340T797 59Q797 55 798 54T805 50T822 48T855 46H886Q892 37 892 35Q892 19 885 5Q880 0 869 0Q864 0 828 1T736 2Q675 2 644 2T609 1Q592 1 592 11Q592 13 594 25Q598 41 602 43T625 46Q652 46 685 49Q699 52 704 61Q706 65 742 207T813 490T848 631L654 322Q458 10 453 5Q451 4 449 3Q444 0 433 0Q418 0 415 7Q413 11 374 317L335 624L267 354Q200 88 200 79Q206 46 272 46H282Q288 41 289 37T286 19Q282 3 278 1Q274 0 267 0Q265 0 255 0T221 1T157 2Q127 2 95 1T58 0Q43 0 39 2T35 11Q35 13 38 25T43 40Q45 46 65 46Q135 46 154 86Q158 92 223 354T289 629Z"></path></g><g data-mml-node="mi" transform="translate(1003,-150) scale(0.707)"><path data-c="1D446" d="M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"></path></g></g><g data-mml-node="mi" transform="translate(2295.1,0)"><path data-c="1D466" d="M21 287Q21 301 36 335T84 406T158 442Q199 442 224 419T250 355Q248 336 247 334Q247 331 231 288T198 191T182 105Q182 62 196 45T238 27Q261 27 281 38T312 61T339 94Q339 95 344 114T358 173T377 247Q415 397 419 404Q432 431 462 431Q475 431 483 424T494 412T496 403Q496 390 447 193T391 -23Q363 -106 294 -155T156 -205Q111 -205 77 -183T43 -117Q43 -95 50 -80T69 -58T89 -48T106 -45Q150 -45 150 -87Q150 -107 138 -122T115 -142T102 -147L99 -148Q101 -153 118 -160T152 -167H160Q177 -167 186 -165Q219 -156 247 -127T290 -65T313 -9T321 21L315 17Q309 13 296 6T270 -6Q250 -11 231 -11Q185 -11 150 11T104 82Q103 89 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g><g data-mml-node="msup" transform="translate(1149.3,-719.2)"><g data-mml-node="mi"><path data-c="1D466" d="M21 287Q21 301 36 335T84 406T158 442Q199 442 224 419T250 355Q248 336 247 334Q247 331 231 288T198 191T182 105Q182 62 196 45T238 27Q261 27 281 38T312 61T339 94Q339 95 344 114T358 173T377 247Q415 397 419 404Q432 431 462 431Q475 431 483 424T494 412T496 403Q496 390 447 193T391 -23Q363 -106 294 -155T156 -205Q111 -205 77 -183T43 -117Q43 -95 50 -80T69 -58T89 -48T106 -45Q150 -45 150 -87Q150 -107 138 -122T115 -142T102 -147L99 -148Q101 -153 118 -160T152 -167H160Q177 -167 186 -165Q219 -156 247 -127T290 -65T313 -9T321 21L315 17Q309 13 296 6T270 -6Q250 -11 231 -11Q185 -11 150 11T104 82Q103 89 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mn" transform="translate(523,289) scale(0.707)"><path data-c="33" d="M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z"></path></g></g><rect width="2985.1" height="60" x="120" y="220"></rect></g><g data-mml-node="mstyle" transform="translate(20650.2,0)"><g data-mml-node="mspace"></g></g><g data-mml-node="mfrac" transform="translate(22650.2,0)"><g data-mml-node="mrow" transform="translate(220,676)"><g data-mml-node="mi"><path data-c="1D451" d="M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z"></path></g><g data-mml-node="mi" transform="translate(520,0)"><path data-c="1D466" d="M21 287Q21 301 36 335T84 406T158 442Q199 442 224 419T250 355Q248 336 247 334Q247 331 231 288T198 191T182 105Q182 62 196 45T238 27Q261 27 281 38T312 61T339 94Q339 95 344 114T358 173T377 247Q415 397 419 404Q432 431 462 431Q475 431 483 424T494 412T496 403Q496 390 447 193T391 -23Q363 -106 294 -155T156 -205Q111 -205 77 -183T43 -117Q43 -95 50 -80T69 -58T89 -48T106 -45Q150 -45 150 -87Q150 -107 138 -122T115 -142T102 -147L99 -148Q101 -153 118 -160T152 -167H160Q177 -167 186 -165Q219 -156 247 -127T290 -65T313 -9T321 21L315 17Q309 13 296 6T270 -6Q250 -11 231 -11Q185 -11 150 11T104 82Q103 89 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g><g data-mml-node="mrow" transform="translate(284.5,-686)"><g data-mml-node="mi"><path data-c="1D451" d="M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z"></path></g><g data-mml-node="mi" transform="translate(520,0)"><path data-c="1D461" d="M26 385Q19 392 19 395Q19 399 22 411T27 425Q29 430 36 430T87 431H140L159 511Q162 522 166 540T173 566T179 586T187 603T197 615T211 624T229 626Q247 625 254 615T261 596Q261 589 252 549T232 470L222 433Q222 431 272 431H323Q330 424 330 420Q330 398 317 385H210L174 240Q135 80 135 68Q135 26 162 26Q197 26 230 60T283 144Q285 150 288 151T303 153H307Q322 153 322 145Q322 142 319 133Q314 117 301 95T267 48T216 6T155 -11Q125 -11 98 4T59 56Q57 64 57 83V101L92 241Q127 382 128 383Q128 385 77 385H26Z"></path></g></g><rect width="1210" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(24378,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="msub" transform="translate(25433.8,0)"><g data-mml-node="mi"><path data-c="1D463" d="M173 380Q173 405 154 405Q130 405 104 376T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Q21 294 29 316T53 368T97 419T160 441Q202 441 225 417T249 361Q249 344 246 335Q246 329 231 291T200 202T182 113Q182 86 187 69Q200 26 250 26Q287 26 319 60T369 139T398 222T409 277Q409 300 401 317T383 343T365 361T357 383Q357 405 376 424T417 443Q436 443 451 425T467 367Q467 340 455 284T418 159T347 40T241 -11Q177 -11 139 22Q102 54 102 117Q102 148 110 181T151 298Q173 362 173 380Z"></path></g><g data-mml-node="mi" transform="translate(518,-150) scale(0.707)"><path data-c="1D466" d="M21 287Q21 301 36 335T84 406T158 442Q199 442 224 419T250 355Q248 336 247 334Q247 331 231 288T198 191T182 105Q182 62 196 45T238 27Q261 27 281 38T312 61T339 94Q339 95 344 114T358 173T377 247Q415 397 419 404Q432 431 462 431Q475 431 483 424T494 412T496 403Q496 390 447 193T391 -23Q363 -106 294 -155T156 -205Q111 -205 77 -183T43 -117Q43 -95 50 -80T69 -58T89 -48T106 -45Q150 -45 150 -87Q150 -107 138 -122T115 -142T102 -147L99 -148Q101 -153 118 -160T152 -167H160Q177 -167 186 -165Q219 -156 247 -127T290 -65T313 -9T321 21L315 17Q309 13 296 6T270 -6Q250 -11 231 -11Q185 -11 150 11T104 82Q103 89 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g></g></g></svg></mjx-container></p><p>太阳系中，我们令距离单位为天文单位，时间单位为年，可以得到 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.566ex;" xmlns="http://www.w3.org/2000/svg" width="20.408ex" height="2.452ex" role="img" focusable="false" viewBox="0 -833.9 9020.5 1083.9"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D43A" d="M50 252Q50 367 117 473T286 641T490 704Q580 704 633 653Q642 643 648 636T656 626L657 623Q660 623 684 649Q691 655 699 663T715 679T725 690L740 705H746Q760 705 760 698Q760 694 728 561Q692 422 692 421Q690 416 687 415T669 413H653Q647 419 647 422Q647 423 648 429T650 449T651 481Q651 552 619 605T510 659Q492 659 471 656T418 643T357 615T294 567T236 496T189 394T158 260Q156 242 156 221Q156 173 170 136T206 79T256 45T308 28T353 24Q407 24 452 47T514 106Q517 114 529 161T541 214Q541 222 528 224T468 227H431Q425 233 425 235T427 254Q431 267 437 273H454Q494 271 594 271Q634 271 659 271T695 272T707 272Q721 272 721 263Q721 261 719 249Q714 230 709 228Q706 227 694 227Q674 227 653 224Q646 221 643 215T629 164Q620 131 614 108Q589 6 586 3Q584 1 581 1Q571 1 553 21T530 52Q530 53 528 52T522 47Q448 -22 322 -22Q201 -22 126 55T50 252Z"></path></g><g data-mml-node="msub" transform="translate(786,0)"><g data-mml-node="mi"><path data-c="1D440" d="M289 629Q289 635 232 637Q208 637 201 638T194 648Q194 649 196 659Q197 662 198 666T199 671T201 676T203 679T207 681T212 683T220 683T232 684Q238 684 262 684T307 683Q386 683 398 683T414 678Q415 674 451 396L487 117L510 154Q534 190 574 254T662 394Q837 673 839 675Q840 676 842 678T846 681L852 683H948Q965 683 988 683T1017 684Q1051 684 1051 673Q1051 668 1048 656T1045 643Q1041 637 1008 637Q968 636 957 634T939 623Q936 618 867 340T797 59Q797 55 798 54T805 50T822 48T855 46H886Q892 37 892 35Q892 19 885 5Q880 0 869 0Q864 0 828 1T736 2Q675 2 644 2T609 1Q592 1 592 11Q592 13 594 25Q598 41 602 43T625 46Q652 46 685 49Q699 52 704 61Q706 65 742 207T813 490T848 631L654 322Q458 10 453 5Q451 4 449 3Q444 0 433 0Q418 0 415 7Q413 11 374 317L335 624L267 354Q200 88 200 79Q206 46 272 46H282Q288 41 289 37T286 19Q282 3 278 1Q274 0 267 0Q265 0 255 0T221 1T157 2Q127 2 95 1T58 0Q43 0 39 2T35 11Q35 13 38 25T43 40Q45 46 65 46Q135 46 154 86Q158 92 223 354T289 629Z"></path></g><g data-mml-node="mi" transform="translate(1003,-150) scale(0.707)"><path data-c="1D446" d="M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"></path></g></g><g data-mml-node="mo" transform="translate(2572.9,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mn" transform="translate(3628.6,0)"><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z"></path></g><g data-mml-node="msup" transform="translate(4128.6,0)"><g data-mml-node="mi"><path data-c="1D70B" d="M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"></path></g><g data-mml-node="mn" transform="translate(603,363) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g><g data-mml-node="mi" transform="translate(5135.2,0)"><path data-c="1D434" d="M208 74Q208 50 254 46Q272 46 272 35Q272 34 270 22Q267 8 264 4T251 0Q249 0 239 0T205 1T141 2Q70 2 50 0H42Q35 7 35 11Q37 38 48 46H62Q132 49 164 96Q170 102 345 401T523 704Q530 716 547 716H555H572Q578 707 578 706L606 383Q634 60 636 57Q641 46 701 46Q726 46 726 36Q726 34 723 22Q720 7 718 4T704 0Q701 0 690 0T651 1T578 2Q484 2 455 0H443Q437 6 437 9T439 27Q443 40 445 43L449 46H469Q523 49 533 63L521 213H283L249 155Q208 86 208 74ZM516 260Q516 271 504 416T490 562L463 519Q447 492 400 412L310 260L413 259Q516 259 516 260Z"></path></g><g data-mml-node="msup" transform="translate(5885.2,0)"><g data-mml-node="mi"><path data-c="1D448" d="M107 637Q73 637 71 641Q70 643 70 649Q70 673 81 682Q83 683 98 683Q139 681 234 681Q268 681 297 681T342 682T362 682Q378 682 378 672Q378 670 376 658Q371 641 366 638H364Q362 638 359 638T352 638T343 637T334 637Q295 636 284 634T266 623Q265 621 238 518T184 302T154 169Q152 155 152 140Q152 86 183 55T269 24Q336 24 403 69T501 205L552 406Q599 598 599 606Q599 633 535 637Q511 637 511 648Q511 650 513 660Q517 676 519 679T529 683Q532 683 561 682T645 680Q696 680 723 681T752 682Q767 682 767 672Q767 650 759 642Q756 637 737 637Q666 633 648 597Q646 592 598 404Q557 235 548 205Q515 105 433 42T263 -22Q171 -22 116 34T60 167V183Q60 201 115 421Q164 622 164 628Q164 635 107 637Z"></path></g><g data-mml-node="mn" transform="translate(854.2,363) scale(0.707)"><path data-c="33" d="M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z"></path></g></g><g data-mml-node="TeXAtom" data-mjx-texclass="ORD" transform="translate(7142.9,0)"><g data-mml-node="mo"><path data-c="2F" d="M423 750Q432 750 438 744T444 730Q444 725 271 248T92 -240Q85 -250 75 -250Q68 -250 62 -245T56 -231Q56 -221 230 257T407 740Q411 750 423 750Z"></path></g></g><g data-mml-node="mi" transform="translate(7642.9,0)"><path data-c="1D466" d="M21 287Q21 301 36 335T84 406T158 442Q199 442 224 419T250 355Q248 336 247 334Q247 331 231 288T198 191T182 105Q182 62 196 45T238 27Q261 27 281 38T312 61T339 94Q339 95 344 114T358 173T377 247Q415 397 419 404Q432 431 462 431Q475 431 483 424T494 412T496 403Q496 390 447 193T391 -23Q363 -106 294 -155T156 -205Q111 -205 77 -183T43 -117Q43 -95 50 -80T69 -58T89 -48T106 -45Q150 -45 150 -87Q150 -107 138 -122T115 -142T102 -147L99 -148Q101 -153 118 -160T152 -167H160Q177 -167 186 -165Q219 -156 247 -127T290 -65T313 -9T321 21L315 17Q309 13 296 6T270 -6Q250 -11 231 -11Q185 -11 150 11T104 82Q103 89 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="msup" transform="translate(8132.9,0)"><g data-mml-node="mi"><path data-c="1D45F" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mn" transform="translate(484,363) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g></g></svg></mjx-container>，那么利用 Euler-Cromer 方法，可以很容易的进行模拟。</p><p>下面我们简单模拟一下不同偏心率轨道的运动，验证模拟的精度是足够的，可以近似为一条重叠的轨道。</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br></pre></td><td class="code"><pre><span class="line">%matplotlib inline</span><br><span class="line"><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> pl</span><br><span class="line"><span class="keyword">import</span> numpy <span class="keyword">as</span> np</span><br><span class="line"><span class="keyword">from</span> math <span class="keyword">import</span> *</span><br><span class="line"></span><br><span class="line"><span class="keyword">class</span> <span class="title class_">solar_system</span>(<span class="title class_ inherited__">object</span>):</span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">__init__</span>(<span class="params">self, eccentricity = <span class="number">0</span>, initial_x = <span class="number">1.</span>, beta = <span class="number">2</span>, total_time = <span class="number">20</span>, time_step = <span class="number">0.001</span>, alpha = <span class="number">0</span></span>):</span><br><span class="line">        self.beta = beta</span><br><span class="line">        self.e = eccentricity</span><br><span class="line">        self.t = np.arange(time_step, total_time + time_step, time_step)</span><br><span class="line">        self.dt = time_step</span><br><span class="line">        self.alpha = alpha</span><br><span class="line">        self.x = initial_x</span><br><span class="line"></span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">run</span>(<span class="params">self</span>):</span><br><span class="line">        <span class="comment"># 这里我们固定起始位置，并且根据偏心率直接给出可以形成闭合轨道的初始速度</span></span><br><span class="line">        self.x = np.array([self.x])</span><br><span class="line">        self.y = np.array([<span class="number">0</span>])</span><br><span class="line">        self.v_x = np.array([<span class="number">0</span>])</span><br><span class="line">        self.v_y = np.array([<span class="number">2</span> * pi * sqrt((<span class="number">1</span> - self.e)/(<span class="number">1</span> + self.e))])</span><br><span class="line">        self.r = np.array([])</span><br><span class="line">        <span class="keyword">for</span> t <span class="keyword">in</span> self.t:</span><br><span class="line">            self.r = np.append(self.r, sqrt(self.x[-<span class="number">1</span>]**<span class="number">2</span> + self.y[-<span class="number">1</span>]**<span class="number">2</span>))</span><br><span class="line">            self.v_x = np.append(self.v_x, (self.v_x[-<span class="number">1</span>] - self.dt * (<span class="number">4</span>*pi**<span class="number">2</span> * self.x[-<span class="number">1</span>] / self.r[-<span class="number">1</span>] ** (self.beta + <span class="number">1</span>) * (<span class="number">1</span> + self.alpha / self.r[-<span class="number">1</span>] ** <span class="number">2</span>))))</span><br><span class="line">            self.v_y = np.append(self.v_y, (self.v_y[-<span class="number">1</span>] - self.dt * (<span class="number">4</span>*pi**<span class="number">2</span> * self.y[-<span class="number">1</span>] / self.r[-<span class="number">1</span>] ** (self.beta + <span class="number">1</span>) * (<span class="number">1</span> + self.alpha / self.r[-<span class="number">1</span>] ** <span class="number">2</span>))))</span><br><span class="line">            self.x = np.append(self.x, (self.x[-<span class="number">1</span>] + self.v_x[-<span class="number">1</span>] * self.dt))</span><br><span class="line">            self.y = np.append(self.y, (self.y[-<span class="number">1</span>] + self.v_y[-<span class="number">1</span>] * self.dt))</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">show</span>(<span class="params">self, k</span>):</span><br><span class="line">        pl.subplot(k)</span><br><span class="line">        pl.subplots_adjust(wspace = <span class="number">0.3</span>)</span><br><span class="line">        pl.plot(self.x, self.y, linewidth = <span class="number">1</span>)</span><br><span class="line">        pl.plot(<span class="number">0</span>, <span class="number">0</span>, <span class="string">'ro'</span>, markersize = <span class="number">10</span>)</span><br><span class="line">        pl.xlabel(<span class="string">'x (AU)'</span>)</span><br><span class="line">        pl.ylabel(<span class="string">'y (AU)'</span>)</span><br><span class="line">        pl.xlim(-<span class="number">1.2</span>, <span class="number">1.2</span>)</span><br><span class="line">        pl.ylim(-<span class="number">1.2</span>, <span class="number">1.2</span>)</span><br><span class="line">        pl.title(<span class="string">r'Planetary Orbits  $\beta = %.2f\qquad e = %.2f$'</span>% (self.beta, self.e))</span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> __name__ == <span class="string">'__main__'</span>:</span><br><span class="line">    pl.figure(figsize = (<span class="number">12</span>,<span class="number">4</span>), dpi=<span class="number">80</span>)</span><br><span class="line">    k = <span class="number">131</span></span><br><span class="line">    <span class="keyword">for</span> e <span class="keyword">in</span> (<span class="number">0</span>, <span class="number">0.2</span>, <span class="number">0.3</span>):</span><br><span class="line">        a = solar_system(eccentricity = e)</span><br><span class="line">        a.run()</span><br><span class="line">        a.show(k)</span><br><span class="line">        k += <span class="number">1</span></span><br><span class="line">    pl.show()</span><br></pre></td></tr></table></figure><p><img src="test_2_0.png" alt=""></p><p>可以看到在此时的精度下轨迹可以近似认为是重合的轨迹（当然放大后仍然会发现有抖动），下面我们研究一下在 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.486ex;" xmlns="http://www.w3.org/2000/svg" width="5.429ex" height="2.106ex" role="img" focusable="false" viewBox="0 -716 2399.6 931"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FD" d="M29 -194Q23 -188 23 -186Q23 -183 102 134T186 465Q208 533 243 584T309 658Q365 705 429 705H431Q493 705 533 667T573 570Q573 465 469 396L482 383Q533 332 533 252Q533 139 448 65T257 -10Q227 -10 203 -2T165 17T143 40T131 59T126 65L62 -188Q60 -194 42 -194H29ZM353 431Q392 431 427 419L432 422Q436 426 439 429T449 439T461 453T472 471T484 495T493 524T501 560Q503 569 503 593Q503 611 502 616Q487 667 426 667Q384 667 347 643T286 582T247 514T224 455Q219 439 186 308T152 168Q151 163 151 147Q151 99 173 68Q204 26 260 26Q302 26 349 51T425 137Q441 171 449 214T457 279Q457 337 422 372Q380 358 347 358H337Q258 358 258 389Q258 396 261 403Q275 431 353 431Z"></path></g><g data-mml-node="mo" transform="translate(843.8,0)"><path data-c="2260" d="M166 -215T159 -215T147 -212T141 -204T139 -197Q139 -190 144 -183L306 133H70Q56 140 56 153Q56 168 72 173H327L406 327H72Q56 332 56 347Q56 360 70 367H426Q597 702 602 707Q605 716 618 716Q625 716 630 712T636 703T638 696Q638 692 471 367H707Q722 359 722 347Q722 336 708 328L451 327L371 173H708Q722 163 722 153Q722 140 707 133H351Q175 -210 170 -212Q166 -215 159 -215Z"></path></g><g data-mml-node="mn" transform="translate(1899.6,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g></svg></mjx-container> 时，不同偏心率对轨道变化的影响。</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">for</span> i <span class="keyword">in</span> (<span class="number">2.01</span>, <span class="number">2.05</span>, <span class="number">2.1</span>, <span class="number">2.3</span>):</span><br><span class="line">    k = <span class="number">141</span></span><br><span class="line">    pl.figure(figsize = (<span class="number">16.9</span>, <span class="number">4</span>), dpi=<span class="number">80</span>)</span><br><span class="line">    <span class="keyword">for</span> e <span class="keyword">in</span>(<span class="number">0</span>, <span class="number">0.1</span>, <span class="number">0.2</span>, <span class="number">0.5</span>):</span><br><span class="line">        a = solar_system(beta = i, eccentricity = e)</span><br><span class="line">        a.run()</span><br><span class="line">        a.show(k)</span><br><span class="line">        k += <span class="number">1</span></span><br><span class="line">    pl.show()</span><br></pre></td></tr></table></figure><p><img src="test_4_0.png" alt=""><br><img src="test_4_1.png" alt=""><br><img src="test_4_2.png" alt=""><br><img src="test_4_3.png" alt=""></p><p>可以发现和题目叙述相同，对于圆形轨道，即使 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.486ex;" xmlns="http://www.w3.org/2000/svg" width="5.429ex" height="2.106ex" role="img" focusable="false" viewBox="0 -716 2399.6 931"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FD" d="M29 -194Q23 -188 23 -186Q23 -183 102 134T186 465Q208 533 243 584T309 658Q365 705 429 705H431Q493 705 533 667T573 570Q573 465 469 396L482 383Q533 332 533 252Q533 139 448 65T257 -10Q227 -10 203 -2T165 17T143 40T131 59T126 65L62 -188Q60 -194 42 -194H29ZM353 431Q392 431 427 419L432 422Q436 426 439 429T449 439T461 453T472 471T484 495T493 524T501 560Q503 569 503 593Q503 611 502 616Q487 667 426 667Q384 667 347 643T286 582T247 514T224 455Q219 439 186 308T152 168Q151 163 151 147Q151 99 173 68Q204 26 260 26Q302 26 349 51T425 137Q441 171 449 214T457 279Q457 337 422 372Q380 358 347 358H337Q258 358 258 389Q258 396 261 403Q275 431 353 431Z"></path></g><g data-mml-node="mo" transform="translate(843.8,0)"><path data-c="2260" d="M166 -215T159 -215T147 -212T141 -204T139 -197Q139 -190 144 -183L306 133H70Q56 140 56 153Q56 168 72 173H327L406 327H72Q56 332 56 347Q56 360 70 367H426Q597 702 602 707Q605 716 618 716Q625 716 630 712T636 703T638 696Q638 692 471 367H707Q722 359 722 347Q722 336 708 328L451 327L371 173H708Q722 163 722 153Q722 140 707 133H351Q175 -210 170 -212Q166 -215 159 -215Z"></path></g><g data-mml-node="mn" transform="translate(1899.6,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g></svg></mjx-container>，仍然可以形成圆形轨道，当然随着模拟时间的增加，轨道必然会发生变动。<br>但是当轨道的偏心率不为0时，即使对于 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.439ex;" xmlns="http://www.w3.org/2000/svg" width="8.32ex" height="2.034ex" role="img" focusable="false" viewBox="0 -705 3677.6 899"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FD" d="M29 -194Q23 -188 23 -186Q23 -183 102 134T186 465Q208 533 243 584T309 658Q365 705 429 705H431Q493 705 533 667T573 570Q573 465 469 396L482 383Q533 332 533 252Q533 139 448 65T257 -10Q227 -10 203 -2T165 17T143 40T131 59T126 65L62 -188Q60 -194 42 -194H29ZM353 431Q392 431 427 419L432 422Q436 426 439 429T449 439T461 453T472 471T484 495T493 524T501 560Q503 569 503 593Q503 611 502 616Q487 667 426 667Q384 667 347 643T286 582T247 514T224 455Q219 439 186 308T152 168Q151 163 151 147Q151 99 173 68Q204 26 260 26Q302 26 349 51T425 137Q441 171 449 214T457 279Q457 337 422 372Q380 358 347 358H337Q258 358 258 389Q258 396 261 403Q275 431 353 431Z"></path></g><g data-mml-node="mo" transform="translate(843.8,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mn" transform="translate(1899.6,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(778,0)"></path><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" transform="translate(1278,0)"></path></g></g></g></svg></mjx-container> 这么小的偏差，轨道仍然会逐渐进动，不再是一条重叠的轨道。</p><p>而且可以发现，当偏心率越大，轨道的进动速度越快，这应该是很容易理解的，偏心率越大意味着轨道越椭圆，其近日点和远日点的差距也就越大，从而使得轨道的进动更加迅速。</p><h2 id="Problem-4-11">Problem 4.11</h2><blockquote><p>Investigate how the precession of the perihelion of a planet’s orbit due to general relativity varies as a function of the eccentricity of the orbit. Study the precession of different elliptical orbits with different eccentricities, but with the same value of the perihelion. Let the perihelion have the same value as for Mercury, so that you can compare it with the results shown in this section. (比较相同近地点情况下进动的速率。)</p></blockquote><p>广义相对论下，对万有引力公式有近似的修正</p><p><mjx-container class="MathJax" jax="SVG" display="true"><svg style="vertical-align: -1.654ex;" xmlns="http://www.w3.org/2000/svg" width="24.829ex" height="4.778ex" role="img" focusable="false" viewBox="0 -1381 10974.6 2111.9"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D439" d="M48 1Q31 1 31 11Q31 13 34 25Q38 41 42 43T65 46Q92 46 125 49Q139 52 144 61Q146 66 215 342T285 622Q285 629 281 629Q273 632 228 634H197Q191 640 191 642T193 659Q197 676 203 680H742Q749 676 749 669Q749 664 736 557T722 447Q720 440 702 440H690Q683 445 683 453Q683 454 686 477T689 530Q689 560 682 579T663 610T626 626T575 633T503 634H480Q398 633 393 631Q388 629 386 623Q385 622 352 492L320 363H375Q378 363 398 363T426 364T448 367T472 374T489 386Q502 398 511 419T524 457T529 475Q532 480 548 480H560Q567 475 567 470Q567 467 536 339T502 207Q500 200 482 200H470Q463 206 463 212Q463 215 468 234T473 274Q473 303 453 310T364 317H309L277 190Q245 66 245 60Q245 46 334 46H359Q365 40 365 39T363 19Q359 6 353 0H336Q295 2 185 2Q120 2 86 2T48 1Z"></path></g><g data-mml-node="mi" transform="translate(676,-150) scale(0.707)"><path data-c="1D43A" d="M50 252Q50 367 117 473T286 641T490 704Q580 704 633 653Q642 643 648 636T656 626L657 623Q660 623 684 649Q691 655 699 663T715 679T725 690L740 705H746Q760 705 760 698Q760 694 728 561Q692 422 692 421Q690 416 687 415T669 413H653Q647 419 647 422Q647 423 648 429T650 449T651 481Q651 552 619 605T510 659Q492 659 471 656T418 643T357 615T294 567T236 496T189 394T158 260Q156 242 156 221Q156 173 170 136T206 79T256 45T308 28T353 24Q407 24 452 47T514 106Q517 114 529 161T541 214Q541 222 528 224T468 227H431Q425 233 425 235T427 254Q431 267 437 273H454Q494 271 594 271Q634 271 659 271T695 272T707 272Q721 272 721 263Q721 261 719 249Q714 230 709 228Q706 227 694 227Q674 227 653 224Q646 221 643 215T629 164Q620 131 614 108Q589 6 586 3Q584 1 581 1Q571 1 553 21T530 52Q530 53 528 52T522 47Q448 -22 322 -22Q201 -22 126 55T50 252Z"></path></g></g><g data-mml-node="mo" transform="translate(1559.6,0)"><path data-c="2248" d="M55 319Q55 360 72 393T114 444T163 472T205 482Q207 482 213 482T223 483Q262 483 296 468T393 413L443 381Q502 346 553 346Q609 346 649 375T694 454Q694 465 698 474T708 483Q722 483 722 452Q722 386 675 338T555 289Q514 289 468 310T388 357T308 404T224 426Q164 426 125 393T83 318Q81 289 69 289Q55 289 55 319ZM55 85Q55 126 72 159T114 210T163 238T205 248Q207 248 213 248T223 249Q262 249 296 234T393 179L443 147Q502 112 553 112Q609 112 649 141T694 220Q694 249 708 249T722 217Q722 153 675 104T555 55Q514 55 468 76T388 123T308 170T224 192Q164 192 125 159T83 84Q80 55 69 55Q55 55 55 85Z"></path></g><g data-mml-node="mfrac" transform="translate(2615.3,0)"><g data-mml-node="mrow" transform="translate(220,676)"><g data-mml-node="mi"><path data-c="1D43A" d="M50 252Q50 367 117 473T286 641T490 704Q580 704 633 653Q642 643 648 636T656 626L657 623Q660 623 684 649Q691 655 699 663T715 679T725 690L740 705H746Q760 705 760 698Q760 694 728 561Q692 422 692 421Q690 416 687 415T669 413H653Q647 419 647 422Q647 423 648 429T650 449T651 481Q651 552 619 605T510 659Q492 659 471 656T418 643T357 615T294 567T236 496T189 394T158 260Q156 242 156 221Q156 173 170 136T206 79T256 45T308 28T353 24Q407 24 452 47T514 106Q517 114 529 161T541 214Q541 222 528 224T468 227H431Q425 233 425 235T427 254Q431 267 437 273H454Q494 271 594 271Q634 271 659 271T695 272T707 272Q721 272 721 263Q721 261 719 249Q714 230 709 228Q706 227 694 227Q674 227 653 224Q646 221 643 215T629 164Q620 131 614 108Q589 6 586 3Q584 1 581 1Q571 1 553 21T530 52Q530 53 528 52T522 47Q448 -22 322 -22Q201 -22 126 55T50 252Z"></path></g><g data-mml-node="msub" transform="translate(786,0)"><g data-mml-node="mi"><path data-c="1D440" d="M289 629Q289 635 232 637Q208 637 201 638T194 648Q194 649 196 659Q197 662 198 666T199 671T201 676T203 679T207 681T212 683T220 683T232 684Q238 684 262 684T307 683Q386 683 398 683T414 678Q415 674 451 396L487 117L510 154Q534 190 574 254T662 394Q837 673 839 675Q840 676 842 678T846 681L852 683H948Q965 683 988 683T1017 684Q1051 684 1051 673Q1051 668 1048 656T1045 643Q1041 637 1008 637Q968 636 957 634T939 623Q936 618 867 340T797 59Q797 55 798 54T805 50T822 48T855 46H886Q892 37 892 35Q892 19 885 5Q880 0 869 0Q864 0 828 1T736 2Q675 2 644 2T609 1Q592 1 592 11Q592 13 594 25Q598 41 602 43T625 46Q652 46 685 49Q699 52 704 61Q706 65 742 207T813 490T848 631L654 322Q458 10 453 5Q451 4 449 3Q444 0 433 0Q418 0 415 7Q413 11 374 317L335 624L267 354Q200 88 200 79Q206 46 272 46H282Q288 41 289 37T286 19Q282 3 278 1Q274 0 267 0Q265 0 255 0T221 1T157 2Q127 2 95 1T58 0Q43 0 39 2T35 11Q35 13 38 25T43 40Q45 46 65 46Q135 46 154 86Q158 92 223 354T289 629Z"></path></g><g data-mml-node="mi" transform="translate(1003,-150) scale(0.707)"><path data-c="1D446" d="M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"></path></g></g><g data-mml-node="msub" transform="translate(2295.1,0)"><g data-mml-node="mi"><path data-c="1D440" d="M289 629Q289 635 232 637Q208 637 201 638T194 648Q194 649 196 659Q197 662 198 666T199 671T201 676T203 679T207 681T212 683T220 683T232 684Q238 684 262 684T307 683Q386 683 398 683T414 678Q415 674 451 396L487 117L510 154Q534 190 574 254T662 394Q837 673 839 675Q840 676 842 678T846 681L852 683H948Q965 683 988 683T1017 684Q1051 684 1051 673Q1051 668 1048 656T1045 643Q1041 637 1008 637Q968 636 957 634T939 623Q936 618 867 340T797 59Q797 55 798 54T805 50T822 48T855 46H886Q892 37 892 35Q892 19 885 5Q880 0 869 0Q864 0 828 1T736 2Q675 2 644 2T609 1Q592 1 592 11Q592 13 594 25Q598 41 602 43T625 46Q652 46 685 49Q699 52 704 61Q706 65 742 207T813 490T848 631L654 322Q458 10 453 5Q451 4 449 3Q444 0 433 0Q418 0 415 7Q413 11 374 317L335 624L267 354Q200 88 200 79Q206 46 272 46H282Q288 41 289 37T286 19Q282 3 278 1Q274 0 267 0Q265 0 255 0T221 1T157 2Q127 2 95 1T58 0Q43 0 39 2T35 11Q35 13 38 25T43 40Q45 46 65 46Q135 46 154 86Q158 92 223 354T289 629Z"></path></g><g data-mml-node="mi" transform="translate(1003,-150) scale(0.707)"><path data-c="1D440" d="M289 629Q289 635 232 637Q208 637 201 638T194 648Q194 649 196 659Q197 662 198 666T199 671T201 676T203 679T207 681T212 683T220 683T232 684Q238 684 262 684T307 683Q386 683 398 683T414 678Q415 674 451 396L487 117L510 154Q534 190 574 254T662 394Q837 673 839 675Q840 676 842 678T846 681L852 683H948Q965 683 988 683T1017 684Q1051 684 1051 673Q1051 668 1048 656T1045 643Q1041 637 1008 637Q968 636 957 634T939 623Q936 618 867 340T797 59Q797 55 798 54T805 50T822 48T855 46H886Q892 37 892 35Q892 19 885 5Q880 0 869 0Q864 0 828 1T736 2Q675 2 644 2T609 1Q592 1 592 11Q592 13 594 25Q598 41 602 43T625 46Q652 46 685 49Q699 52 704 61Q706 65 742 207T813 490T848 631L654 322Q458 10 453 5Q451 4 449 3Q444 0 433 0Q418 0 415 7Q413 11 374 317L335 624L267 354Q200 88 200 79Q206 46 272 46H282Q288 41 289 37T286 19Q282 3 278 1Q274 0 267 0Q265 0 255 0T221 1T157 2Q127 2 95 1T58 0Q43 0 39 2T35 11Q35 13 38 25T43 40Q45 46 65 46Q135 46 154 86Q158 92 223 354T289 629Z"></path></g></g></g><g data-mml-node="msup" transform="translate(1821.8,-719.9)"><g data-mml-node="mi"><path data-c="1D45F" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mn" transform="translate(484,289) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g><rect width="4291.3" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(7146.6,0)"><path data-c="28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"></path></g><g data-mml-node="mn" transform="translate(7535.6,0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path></g><g data-mml-node="mo" transform="translate(8257.8,0)"><path data-c="2B" d="M56 237T56 250T70 270H369V420L370 570Q380 583 389 583Q402 583 409 568V270H707Q722 262 722 250T707 230H409V-68Q401 -82 391 -82H389H387Q375 -82 369 -68V230H70Q56 237 56 250Z"></path></g><g data-mml-node="mfrac" transform="translate(9258,0)"><g data-mml-node="mi" transform="translate(343.8,676)"><path data-c="1D6FC" d="M34 156Q34 270 120 356T309 442Q379 442 421 402T478 304Q484 275 485 237V208Q534 282 560 374Q564 388 566 390T582 393Q603 393 603 385Q603 376 594 346T558 261T497 161L486 147L487 123Q489 67 495 47T514 26Q528 28 540 37T557 60Q559 67 562 68T577 70Q597 70 597 62Q597 56 591 43Q579 19 556 5T512 -10H505Q438 -10 414 62L411 69L400 61Q390 53 370 41T325 18T267 -2T203 -11Q124 -11 79 39T34 156ZM208 26Q257 26 306 47T379 90L403 112Q401 255 396 290Q382 405 304 405Q235 405 183 332Q156 292 139 224T121 120Q121 71 146 49T208 26Z"></path></g><g data-mml-node="msup" transform="translate(220,-719.9)"><g data-mml-node="mi"><path data-c="1D45F" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mn" transform="translate(484,289) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g><rect width="1087.6" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(10585.6,0)"><path data-c="29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"></path></g></g></g></svg></mjx-container></p><p>利用广义相对论的修正，可以很好地解释水星的轨道进动现象，下面我们进行一下简单的模拟。这里由于 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.025ex;" xmlns="http://www.w3.org/2000/svg" width="1.448ex" height="1.025ex" role="img" focusable="false" viewBox="0 -442 640 453"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FC" d="M34 156Q34 270 120 356T309 442Q379 442 421 402T478 304Q484 275 485 237V208Q534 282 560 374Q564 388 566 390T582 393Q603 393 603 385Q603 376 594 346T558 261T497 161L486 147L487 123Q489 67 495 47T514 26Q528 28 540 37T557 60Q559 67 562 68T577 70Q597 70 597 62Q597 56 591 43Q579 19 556 5T512 -10H505Q438 -10 414 62L411 69L400 61Q390 53 370 41T325 18T267 -2T203 -11Q124 -11 79 39T34 156ZM208 26Q257 26 306 47T379 90L403 112Q401 255 396 290Q382 405 304 405Q235 405 183 332Q156 292 139 224T121 120Q121 71 146 49T208 26Z"></path></g></g></g></svg></mjx-container> 较小，直接模拟会不精确（据说现在精度足够了），我们令 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.186ex;" xmlns="http://www.w3.org/2000/svg" width="10.75ex" height="1.692ex" role="img" focusable="false" viewBox="0 -666 4751.6 748"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FC" d="M34 156Q34 270 120 356T309 442Q379 442 421 402T478 304Q484 275 485 237V208Q534 282 560 374Q564 388 566 390T582 393Q603 393 603 385Q603 376 594 346T558 261T497 161L486 147L487 123Q489 67 495 47T514 26Q528 28 540 37T557 60Q559 67 562 68T577 70Q597 70 597 62Q597 56 591 43Q579 19 556 5T512 -10H505Q438 -10 414 62L411 69L400 61Q390 53 370 41T325 18T267 -2T203 -11Q124 -11 79 39T34 156ZM208 26Q257 26 306 47T379 90L403 112Q401 255 396 290Q382 405 304 405Q235 405 183 332Q156 292 139 224T121 120Q121 71 146 49T208 26Z"></path></g><g data-mml-node="mo" transform="translate(917.8,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mn" transform="translate(1973.6,0)"><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(778,0)"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(1278,0)"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(1778,0)"></path><path data-c="38" d="M70 417T70 494T124 618T248 666Q319 666 374 624T429 515Q429 485 418 459T392 417T361 389T335 371T324 363L338 354Q352 344 366 334T382 323Q457 264 457 174Q457 95 399 37T249 -22Q159 -22 101 29T43 155Q43 263 172 335L154 348Q133 361 127 368Q70 417 70 494ZM286 386L292 390Q298 394 301 396T311 403T323 413T334 425T345 438T355 454T364 471T369 491T371 513Q371 556 342 586T275 624Q268 625 242 625Q201 625 165 599T128 534Q128 511 141 492T167 463T217 431Q224 426 228 424L286 386ZM250 21Q308 21 350 55T392 137Q392 154 387 169T375 194T353 216T330 234T301 253T274 270Q260 279 244 289T218 306L210 311Q204 311 181 294T133 239T107 157Q107 98 150 60T250 21Z" transform="translate(2278,0)"></path></g></g></g></svg></mjx-container> ，然后取不同的离心率，研究一下进动速度和离心率的关系。</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">Mercury</span>(<span class="title class_ inherited__">solar_system</span>):</span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">precession</span>(<span class="params">self</span>):</span><br><span class="line">        diff = np.diff(np.sign(np.diff(self.r))) <span class="comment"># 寻找近地点</span></span><br><span class="line">        locations = np.where(diff == <span class="number">2</span>)[<span class="number">0</span>] + <span class="number">1</span></span><br><span class="line">        self.need_r = self.r[locations]</span><br><span class="line">        self.need_x = self.x[locations]</span><br><span class="line">        self.need_y = self.y[locations]</span><br><span class="line">        self.need_t = self.t[locations]</span><br><span class="line">        self.theta = np.arccos(self.need_x / self.need_r) * <span class="number">180</span> / pi</span><br><span class="line">        <span class="comment"># self.theta[self.need_y &lt; 0] = 360 - self.theta[self.need_y &lt; 0]</span></span><br><span class="line">        <span class="comment"># self.theta = np.abs(self.theta - 180)</span></span><br><span class="line">        self.func = np.polyfit(self.need_t, self.theta, <span class="number">1</span>) <span class="comment"># 最小二乘法线性拟合</span></span><br><span class="line">        self.y_fit = self.func[<span class="number">0</span>] * self.need_t + self.func[<span class="number">1</span>]</span><br><span class="line"></span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">show</span>(<span class="params">self</span>):</span><br><span class="line">        pl.plot(self.need_t, self.theta, <span class="string">'o'</span>, markersize = <span class="number">4</span>)</span><br><span class="line">        pl.plot(self.need_t, self.y_fit, linewidth = <span class="number">1.5</span>, label = <span class="string">r'$e=%.2f\quad\omega=%.3f$'</span>% (self.e, self.func[<span class="number">0</span>]))</span><br><span class="line">        pl.xlabel(<span class="string">'t (yr)'</span>)</span><br><span class="line">        pl.ylabel(<span class="string">r'$\theta(^\circ)$'</span>)</span><br><span class="line">        pl.title(<span class="string">r'Oribit orientation versus time $\alpha = %.4f$'</span>% self.alpha)</span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> __name__ == <span class="string">'__main__'</span>:</span><br><span class="line">    pl.figure(figsize = (<span class="number">8</span>, <span class="number">8</span>), dpi=<span class="number">80</span>)</span><br><span class="line">    <span class="keyword">for</span> i <span class="keyword">in</span> (<span class="number">0.1</span>, <span class="number">0.15</span>, <span class="number">0.2</span>, <span class="number">0.25</span>):</span><br><span class="line">        a = Mercury(alpha=<span class="number">0.0008</span>, eccentricity = i, initial_x = (<span class="number">1</span>+i)/(<span class="number">1</span>-i), total_time = <span class="number">5</span>, time_step = <span class="number">0.0001</span>)</span><br><span class="line">        a.run()</span><br><span class="line">        a.precession()</span><br><span class="line">        a.show()</span><br><span class="line">    pl.legend(loc = <span class="string">'lower right'</span>)</span><br><span class="line">    pl.show()</span><br><span class="line"></span><br></pre></td></tr></table></figure><p><img src="test_8_0.png" alt=""></p><p>可以发现，轨道进动的速度随着偏心率的增大而减小，但可以看出并不是线性关系，下面取更多数据进行一下计算。(时间不够没模拟出来</p>]]>
    </content>
    <id>https://editst.com/2018/comput-phys-homework7/</id>
    <link href="https://editst.com/2018/comput-phys-homework7/"/>
    <published>2018-11-22T14:56:33.000Z</published>
    <summary>
      <![CDATA[<h2 id="Problem-4-9">Problem 4.9</h2>
<blockquote>
<p>In this section we saw that orbits are unstable for any value of <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.439ex;" xmlns="http://www.w3.org/2000/svg" width="1.281ex" height="2.034ex" role="img" focusable="false" viewBox="0 -705 566 899"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FD" d="M29 -194Q23 -188 23 -186Q23 -183 102 134T186 465Q208 533 243 584T309 658Q365 705 429 705H431Q493 705 533 667T573 570Q573 465 469 396L482 383Q533 332 533 252Q533 139 448 65T257 -10Q227 -10 203 -2T165 17T143 40T131 59T126 65L62 -188Q60 -194 42 -194H29ZM353 431Q392 431 427 419L432 422Q436 426 439 429T449 439T461 453T472 471T484 495T493 524T501 560Q503 569 503 593Q503 611 502 616Q487 667 426 667Q384 667 347 643T286 582T247 514T224 455Q219 439 186 308T152 168Q151 163 151 147Q151 99 173 68Q204 26 260 26Q302 26 349 51T425 137Q441 171 449 214T457 279Q457 337 422 372Q380 358 347 358H337Q258 358 258 389Q258 396 261 403Q275 431 353 431Z"></path></g></g></g></svg></mjx-container> that is not precisely 2 in (4.12). A related question, which we did not address (until now), is <em>how</em> unstable an orbit might be. That is, how long will it take for an unstable orbit to become obvious. The answer to this question depends on the nature of the orbit. If the initial velocity is chosen so as to make the orbit precisely circular, then the value of <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.439ex;" xmlns="http://www.w3.org/2000/svg" width="1.281ex" height="2.034ex" role="img" focusable="false" viewBox="0 -705 566 899"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FD" d="M29 -194Q23 -188 23 -186Q23 -183 102 134T186 465Q208 533 243 584T309 658Q365 705 429 705H431Q493 705 533 667T573 570Q573 465 469 396L482 383Q533 332 533 252Q533 139 448 65T257 -10Q227 -10 203 -2T165 17T143 40T131 59T126 65L62 -188Q60 -194 42 -194H29ZM353 431Q392 431 427 419L432 422Q436 426 439 429T449 439T461 453T472 471T484 495T493 524T501 560Q503 569 503 593Q503 611 502 616Q487 667 426 667Q384 667 347 643T286 582T247 514T224 455Q219 439 186 308T152 168Q151 163 151 147Q151 99 173 68Q204 26 260 26Q302 26 349 51T425 137Q441 171 449 214T457 279Q457 337 422 372Q380 358 347 358H337Q258 358 258 389Q258 396 261 403Q275 431 353 431Z"></path></g></g></g></svg></mjx-container> in (4.12) will make absolutely no difference. Of course, in practice it is impossible to construct an orbit that is exactly circular, so the instabilities when <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.486ex;" xmlns="http://www.w3.org/2000/svg" width="5.429ex" height="2.106ex" role="img" focusable="false" viewBox="0 -716 2399.6 931"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FD" d="M29 -194Q23 -188 23 -186Q23 -183 102 134T186 465Q208 533 243 584T309 658Q365 705 429 705H431Q493 705 533 667T573 570Q573 465 469 396L482 383Q533 332 533 252Q533 139 448 65T257 -10Q227 -10 203 -2T165 17T143 40T131 59T126 65L62 -188Q60 -194 42 -194H29ZM353 431Q392 431 427 419L432 422Q436 426 439 429T449 439T461 453T472 471T484 495T493 524T501 560Q503 569 503 593Q503 611 502 616Q487 667 426 667Q384 667 347 643T286 582T247 514T224 455Q219 439 186 308T152 168Q151 163 151 147Q151 99 173 68Q204 26 260 26Q302 26 349 51T425 137Q441 171 449 214T457 279Q457 337 422 372Q380 358 347 358H337Q258 358 258 389Q258 396 261 403Q275 431 353 431Z"></path></g><g data-mml-node="mo" transform="translate(843.8,0)"><path data-c="2260" d="M166 -215T159 -215T147 -212T141 -204T139 -197Q139 -190 144 -183L306 133H70Q56 140 56 153Q56 168 72 173H327L406 327H72Q56 332 56 347Q56 360 70 367H426Q597 702 602 707Q605 716 618 716Q625 716 630 712T636 703T638 696Q638 692 471 367H707Q722 359 722 347Q722 336 708 328L451 327L371 173H708Q722 163 722 153Q722 140 707 133H351Q175 -210 170 -212Q166 -215 159 -215Z"></path></g><g data-mml-node="mn" transform="translate(1899.6,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g></g></svg></mjx-container> will always be apparent given enough time. Even so, orbits that start out as nearly circular will remain almost stable for a longer period than those that are highly elliptical. Investigate this by studying orbits with the same value of <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.439ex;" xmlns="http://www.w3.org/2000/svg" width="1.281ex" height="2.034ex" role="img" focusable="false" viewBox="0 -705 566 899"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FD" d="M29 -194Q23 -188 23 -186Q23 -183 102 134T186 465Q208 533 243 584T309 658Q365 705 429 705H431Q493 705 533 667T573 570Q573 465 469 396L482 383Q533 332 533 252Q533 139 448 65T257 -10Q227 -10 203 -2T165 17T143 40T131 59T126 65L62 -188Q60 -194 42 -194H29ZM353 431Q392 431 427 419L432 422Q436 426 439 429T449 439T461 453T472 471T484 495T493 524T501 560Q503 569 503 593Q503 611 502 616Q487 667 426 667Q384 667 347 643T286 582T247 514T224 455Q219 439 186 308T152 168Q151 163 151 147Q151 99 173 68Q204 26 260 26Q302 26 349 51T425 137Q441 171 449 214T457 279Q457 337 422 372Q380 358 347 358H337Q258 358 258 389Q258 396 261 403Q275 431 353 431Z"></path></g></g></g></svg></mjx-container> (say, <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.439ex;" xmlns="http://www.w3.org/2000/svg" width="8.32ex" height="2.034ex" role="img" focusable="false" viewBox="0 -705 3677.6 899"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FD" d="M29 -194Q23 -188 23 -186Q23 -183 102 134T186 465Q208 533 243 584T309 658Q365 705 429 705H431Q493 705 533 667T573 570Q573 465 469 396L482 383Q533 332 533 252Q533 139 448 65T257 -10Q227 -10 203 -2T165 17T143 40T131 59T126 65L62 -188Q60 -194 42 -194H29ZM353 431Q392 431 427 419L432 422Q436 426 439 429T449 439T461 453T472 471T484 495T493 524T501 560Q503 569 503 593Q503 611 502 616Q487 667 426 667Q384 667 347 643T286 582T247 514T224 455Q219 439 186 308T152 168Q151 163 151 147Q151 99 173 68Q204 26 260 26Q302 26 349 51T425 137Q441 171 449 214T457 279Q457 337 422 372Q380 358 347 358H337Q258 358 258 389Q258 396 261 403Q275 431 353 431Z"></path></g><g data-mml-node="mo" transform="translate(843.8,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path></g><g data-mml-node="mn" transform="translate(1899.6,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(778,0)"></path><path data-c="35" d="M164 157Q164 133 148 117T109 101H102Q148 22 224 22Q294 22 326 82Q345 115 345 210Q345 313 318 349Q292 382 260 382H254Q176 382 136 314Q132 307 129 306T114 304Q97 304 95 310Q93 314 93 485V614Q93 664 98 664Q100 666 102 666Q103 666 123 658T178 642T253 634Q324 634 389 662Q397 666 402 666Q410 666 410 648V635Q328 538 205 538Q174 538 149 544L139 546V374Q158 388 169 396T205 412T256 420Q337 420 393 355T449 201Q449 109 385 44T229 -22Q148 -22 99 32T50 154Q50 178 61 192T84 210T107 214Q132 214 148 197T164 157Z" transform="translate(1278,0)"></path></g></g></g></svg></mjx-container>) and comparing the hebavior with different values of the ellipticity of the orbit. You should find that the orientation of orbits that are more nearly circular will rotate more slowly than those that are highly elliptical. (尝试利用不是2的 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.439ex;" xmlns="http://www.w3.org/2000/svg" width="1.281ex" height="2.034ex" role="img" focusable="false" viewBox="0 -705 566 899"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D6FD" d="M29 -194Q23 -188 23 -186Q23 -183 102 134T186 465Q208 533 243 584T309 658Q365 705 429 705H431Q493 705 533 667T573 570Q573 465 469 396L482 383Q533 332 533 252Q533 139 448 65T257 -10Q227 -10 203 -2T165 17T143 40T131 59T126 65L62 -188Q60 -194 42 -194H29ZM353 431Q392 431 427 419L432 422Q436 426 439 429T449 439T461 453T472 471T484 495T493 524T501 560Q503 569 503 593Q503 611 502 616Q487 667 426 667Q384 667 347 643T286 582T247 514T224 455Q219 439 186 308T152 168Q151 163 151 147Q151 99 173 68Q204 26 260 26Q302 26 349 51T425 137Q441 171 449 214T457 279Q457 337 422 372Q380 358 347 358H337Q258 358 258 389Q258 396 261 403Q275 431 353 431Z"></path></g></g></g></svg></mjx-container> 值构造圆形轨道，并讨论各种不同轨道情况下的稳定性。)</p>
</blockquote>]]>
    </summary>
    <title>计算物理第七次作业</title>
    <updated>2020-11-30T15:06:44.000Z</updated>
  </entry>
</feed>
