HCCH

HCCH

@HCCH

  • CHHC CHHC Post #794

    早上好

  • greyishsong greyishsong Post #23

    半年时间过去,回头再看当时的推荐,还是感觉很难受。今年老师生育,我又种种麻烦缠身最后再次挣扎于身体问题。结果不仅当初一些很不错的设想没能实现,而且连整体的教学安排也没完全保住……花在教学上的精力,一多半都用于确保实验还能正常运行,可惜。希望今年的同学们还算有所收获,别感到很失望吧 😔

  • csranking2022 void Post #1

    本帖陆续更新对 2024 年新加的这个交流项目的简要介绍,以及选拔流程/bar,落地之后试图见缝插针更新日常

  • greyishsong greyishsong Post #17

    往年题背得太多了,对授课会产生很大的负面影响。高考有那么深不见底的题库,2010 年以后教培大行其道不也变成考试技巧军备竞赛了么?换成一门专业选修课,俩小时考试时间里能做完的题其实挺有限的,被人背上三五年的题,题库就完全被打穿了,考试本身的教学意义也没了。

    之后大家发现刷往年题远比上课容易拿高分,而以现在同学分数焦虑的程度来说,90% 以上的同学哪怕没想着不听课,也会先想着我要刷往年题把分数保住。试过几次发现刷往年题实在太方便太省事了,很多人就会滑向学不学无所谓的深渊。以至于我早年对背题的行为还是倾向于赞成,大四之后就偏中立了——因为无差别背往年题一边方便大家混水课,一边伤害认真教学的传统课程。

    这也是为什么图形学考了一年试之后第二年就取消期末了,因为发现期末考试的考核作用基本崩溃了……别说什么懒得多出题,很多选修课真就没有那么多适合传统考试的题可以出。我舍得出题,像钱老一样给你出一道地球 - 火星轨道转移的题目,一题做一天,做完挂一半,同学不答应,教务也不答应。

    (涉及很多个人经历,所以多少有点暴论。大家想反驳就反驳,不人身攻击就行)

  • csranking2022 void Post #4

    这些才是学辅应该做的,希望各大学辅能继续推一些大家真正需要的资料,而不是每年巧立名目弄一堆比课本厚的提纲,抓一堆奔着工时和任职分自欺欺人,随便抄 PPT 了事的人写所谓的“讲义”

  • Forever 夕颜 Post #1

    随着在門的交流时间变长,据我观察,也有不少的門友都有自己的博客,故开设一贴,希望有門友可以和我说说,我非常希望大家可以和我添加友链!

    Blog:

    https://axi404.github.io/Blog/

    总体来说,我的博客使用 Hugo 的 Stack 主题搭建,里面目前主要更新一些本人的流水账周记,以及一些关于 LLM 之类的科研分享,将来可能会有一些别的内容,前提是我接触了新的事物。

    一些关于我自己的介绍在博客里面一篇文章中有讲述,大家见笑了:

    https://axi404.github.io/Blog/p/hello-world/

    本人比较喜欢新鲜的技术/AI/开源,至少暂时我可以大言不惭的说出这句话,但是将来是否会变质,暂且未知。

    大家有兴趣也欢迎光顾我的 Blog,虽然说貌似现在我的 Blog 没有访客记录的方式,我也无从得知大家是否来过,但是反正,欢迎。

    根据我的观察,我的友链支持 [一个链接,一个标题,一段描述以及一个图标],大家在本话题中可以回复,我就会添加大家的友链,谢谢!

  • TsuinoSora TsuinoSora Post #1

    有门友非常自律!看得本 TsuinoSora 非常充满热血!

    上个学期过得太幽默了这个暑假还是好好挽回一下会比较好吧!

    不过当务之急是把暑假小学期的 java web 后端这块搞一搞,不要拉太多了,不然一周后快到 ddl 了又只能发:“已老实”了。。。

    除了 java web 这块应试性的内容,暑假还有几件事!


    • 每天托福学习

    • 做完手上这个项目的所有实验,写完文章!

    • 读几篇多模态的文章,在笔记贴更新点内容(https://xjtu.app/t/topic/9142

    • 做完了上面的事,希望能出去玩一玩?


    Extra

    • bilibili 频道 更新一个比较系统的讲 Segment Anything 的视频(系列),毕竟做了这么久了(
  • Forever 夕颜 Post #3

    确实有一些课还可以,但是看到了部分利益相关课程,不敢评价,总体上依然建议自学。

    有趣的领域那么多,有意义的领域也很多,有的时候最重要的是你对什么感兴趣。

    有的时候一门不太好但是感兴趣的课程,你的听课效果可能好于优秀但不感兴趣的课程。

    在学校选修一门课程,除非是选修课,有学分要求的,不然可能并不是很划算,反而会受到分数的焦虑。至于自学,可以施展的空间就很大了。

    互联网,开源者之无尽藏也,取之不尽用之不竭,而物与我之所共适。

  • ❤️ Liked post in 大二暑假计划贴
    谈笑风生
    Forever 夕颜 Post #1

    再次进入小学期,准备做出一些计划,按照我的风格来说,大多数的计划我都是无法完成的,于是一方面建立一个帖子来监督,一方面,只要充分的去努力,即使没有完成计划,完成计划的大半也已经可以让我收获颇丰。

    基础版

    一些对于我来说任务量不大的内容,只需要阅读或者观看即可完成,本人较懒,故不想动手 : (

    • 阅读二十篇论文(31/20)
    • 看完 Games 101(6/22)
    • 看完 Games 202
    • 学习 Vue 框架的基础使用(满足正常的自用网页的开发需求)
    • 完成我的 人工智能自学指南 的主体内容撰写并约稿两篇

    进阶版

    一些对于我来说具有挑战性的任务,能完成吗?会赢的!

    • 成功申请外校科研实习
    • 补充二十篇 SurviveXJTU 条目(4/20)
    • 阅读一百篇论文(31/100)
    • 看完 acwing 算法基础课与算法提高课

    究极版

    能完成其中一件便已经很不错了,简单尝试一下吧。

    • 看完 acwing 算法进阶课
    • 完结当前科研课题
  • Forever 夕颜 Post #1

    网站链接放在最前面:

    https://survivexjtu.github.io/

    相较之前,前 GitHub 仓库已经删除,更换仓库以调整域名,带来不便敬请见谅,详情见 link 中的仓库

    并添加一张预览,增加門友的点击率

    image|690x302

    为什么要建站

    在本站中出现过关于西安交大生存指南的身影,不过是一个已经毕业的校友创建的仓库。

    TsuinoSora:

    西安交大生存指南 是一位已经毕业的校友于 github 创建的 repo.

    最近重温上海交大生存指南,有感而发,为什么我们不能重新建立一个生存指南呢?刚好我了解了一些快速建站的方式,于是想到便开始行动,大约从考试周开始,直到现在,完成了大多数的框架搭建以及内容创作。

    之所以使用一个我自己新建的仓库,除了一种对于项目的掌控欲之外,主要是因为笔者所喜爱的静态网站生成工具 VitePress 并不是上述提及的老西安交大生存指南的工具,而原站之中的内容笔者私以为大多数并不详尽/是以一种摘要性质的形式存在的。一个由较为优雅的静态网站生成工具部署的网站或许是有必要的,而在一个并不活跃的 Github 用户的仓库下进行新建 branch 并且维护,又显得过于效率低下了。

    另一 西安交大生存指南 则是关于计算机专业的生存指南,而其中内容则甚少/就业相关内容较多,专业指向性较强。

    综上所述,笔者打算重新建立一个西安交大生存指南,私以为已经具备较好观赏性的网站布局以及较为充分的内容,因此在門进行一个引流,同时欢迎大家进行贡献。

    网站主旨

    既然是新建一个西安交大生存指南,有必要阐述一下本人对于这一网站功能性的看法。

    • 偏向于功利主义:当今你交大多数内容均是充斥着人文关怀的,通过各种繁琐的辞藻将某一件事的实质与收益掩盖了起来。例如老师在宣传挑战杯志愿者的时候,不会提到这些工时等内容其实唾手可得,而不少的同学则被“骗”去打工。大学四年的时间是宝贵的,假如说是保研的话,甚至可以算作三年,每一位学生并没有如此多的时间浪费在效率低下收益甚微而又没有情绪价值的事务中。生存指南应该作为打破这种人文滤镜的指南,指出大多数活动的真实面目,并指出真正高效率的灌水方式生活方式。
    • 克制表达:本人在写作的过程中,部分内容可能已经偏向于暴论,这些内容有待后续社区的纠正。生存指南作为给新生的指路内容,不应包含过多的主观情绪,而是在大多数时候提供必要的打破信息差以及恰当建议即可。
    • 高信息密度:生存指南的建立的初衷之一是打破信息差,因此不应具有过高的阅读难度,如阅读过程中存在过多的排列堆叠式的信息,假如确实有必要存在,则通过折叠进行布局编排。大多数时候,假如说外界存在完善的教程,则无需再重复造轮子(例,在其中开设计算机必备技能章节,其中还需要写一个几千字的 git 教程)

    本人期待大家对于生存指南的贡献,其中笔者无法完全触及,而需要大家贡献的,尤其包括:

    • 专业学习路线
    • 备考指南

    笔者较为擅长且欢迎大家共同完善的包括:

    • 保研资讯
    • 科研(AI)相关

    其他

    本人或许不是一个特别成功的开源项目主持者,不过我希望我是。假如有門友打算合作,欢迎一切 PR/Issue/Discussion,或者直接加入 organization,是否有必要建立一个相关的交流群呢?毕竟相关推流不止会在門中进行,門友可以在本贴下回复,其他人呢?大家平时也可以水水群,交流点学习学术或者二游番剧什么的,感觉挺好玩的。

    欢迎大家给出建议,也欢迎大家各种形式的引流!

  • Alice Alice Post #6

    数字评价(0 ~ 5)

    • 难度:4
    • 作业量:4
    • 收获感:2
    • 幸福指数:1

    文字评价

    傻逼课。计算机学院必吃的💩
    成绩比例调回来了,收回一半骂

  • ❤️ Liked post in 幽默分数占比
    Hypocrisy rotartsinimdA Post #3

    开学第一周一般就会告诉分数占比吧。
    不满意不早退课?考完在这里幽默什么。
    这是选修课 不是必修课。

    况且 lab 本身就是比那牛魔卷面分有用多了。

  • Hypocrisy rotartsinimdA Post #1

    来自本人今日和一位大四学长的交流。在次再次向他表达衷心的感谢。他在近两年中给我提供了很多指导、信息和资料。

    • 保研本校的话,联系你的导师。除此之外,包括保外校、出国、考研,就业的同学,都是系统随机分配。
    • 这个分配大概在十月份。值得吐槽是:后续每一个流程,导师比你通过小道消息知道的还晚。
    • 尽量保持跟同一毕设大组的同学之间的联系,一般来说,随机分配的就跟同班或临班的同学分到一个组。
    • 最后发两证的时候,要联系班主任去领取,但是领取两证的前提是要在离校系统里通过所有的手续,包括团关系转接、党关系转接,退宿申请等都走完,然后退出申请,走完 20 到 30 分钟以后,才会在系统里显示你所有流程结束。
    • 毕业典礼前后那几天会突发一些通知,那几天就得多关注一下群消息,要不然稍微你不看手机,可能人家说今天晚上六点前截止,但是你看到消息已经六点半了,就很尴尬。
    • 像学校的实验室的服务器,一般保研的学生可以用,但其他的学生就只能自己去找第三方服务器了,如果需要用到的话,可以看一下有没有一些优惠券啥的,领一下,然后代金券用一下。
  • Alice Alice Post #1

    一些往年题和资料,有的网上有,有的不知道有没有,反正我把自己知道的做了整理
    操作系统往年题(6 套,现在考试有变化,但是考试明显有很多往年题的影子): XJTU-COMP400627-OS/期末 at main · DANNHIROAKI/XJTU-COMP400627-OS (github.com)
    计算机组成作业答案:https://pan.quark.cn/s/c2f5dec0b408
    计算机组成往年题(2 套): MISC-3-1-XJTU/计组实验/计组考试题 at master · RuqinF/MISC-3-1-XJTU (github.com)
    形式语言与编译往年题、部分作业答案(2 套):https://pan.quark.cn/s/e68b0830bd69

  • Hypocrisy rotartsinimdA Post #1

    自己淋过雨不希望别人也和我一样痛苦。

    如果以不挂科为目的 推荐重点复习前八章,其他的随便看看(和我一样)。

    仔细学习考前的 PPT,我太弱还是没掌握,很亏。

    考察重点:

    每一章都有答题基本上,但词法分析只有 5 分。
    其他基本都在 10 - 15 分。

    选择题考察

    PDA 的状态转移
    编译器前后端中间组件
    什么不属于中间语言(选项里有一个 sw 命令,其他是三元、四元)
    待补充

    大题

    • NFA 转 最小 DFA 再转 RE
    • 读词法分析联合 DFA,根据输入串写出输出,并判断优先级。
    • 文法修建,基础题,以及求 first follow 集 判断 LL1 文法。
    • 已知句子 +2++3*(+4) 和对应的语法树,树自己画吧 反正总结的文法是 E -> E*E | E+E | +i | (E) 对这个句子进行规范规约;写出语法树的产物 直接短语 句柄;判断是否为歧义的 为什么
    • 写出 itemDFA 并判断是否存在冲突,如果存在,任意消除其中一个。文法为:S` -> E E -> E+E | +E | +i

    int a[2, 3];
    void f(int b(), int k){
    if(k > 0 && k < 3) a[k-1,k] = b(k, 1)
    else print 0;
    }
    1、对 f 函数声明进行语义分析(自然语言或者符号表均可)
    2、对【if(k > 0 && k < 3) a[k-1,k] = b(k, 1)
    else print 0;】进行分析。写出三地址/四元式。

    int foo(int y;){
    int z;
    void bar(int x; int soo())
    { if(x > 3) bar(x/3, soo());
    else z = soo(x);
    print z;
    }
    int row(int x)
    {
    y = x + 5;
    return y;
    }
    bar(y, raw());
    }
    foo(6)

    写出执行到 return y;
    时候的栈快照。

  • ❤️ Liked post in 考试难度
    uika_winwing uika_winwing Post #4

    感觉每道题都需要考生真正学懂该章知识,有此基础后难度就比较小。考试题目和 lab 对知识的切入角度不同,有些需要你做一些灵巧的变通。

    对于不太熟悉的章节(后两章,尤其是虚拟内存),就比较困难了。以后再开课的时候,最好还是让大家做一下对应 lab(应该是 shell 与 malloc)。

    虚拟内存占分好多 😢

  • Hypocrisy rotartsinimdA Post #15

    很遗憾,事实证明,即使有前人愿意提供最新的资料,也不会涌现新的自愿贡献者【>=2】

    这与我曾经的设想和猜测完全背道而驰。

    本开源计划暂时取消,后续资料【大概率】end to end 交给已有的一位【对新资料有积极回应】的人。

    为什么不管有没有人给自己撑过伞,都不愿意再给后来人撑伞。

    因为自己淋过雨,所以撕别人的伞,我只觉得是用前置因【强行】加理由罢了。

    但为维持个人初心,我将确保资料排版【完成后】,公开【不低于 30%】的部分。

  • ❤️ Liked post in 【2024 春】美本流水帐
    m0rsun m0rsun Post #662

    之前玩《幻兽帕鲁》的时候,有的帕鲁会反复头上冒灯泡,不断把手里的东西丢在地上再捡起来,并四处旋转,想来是 bug。不过我在做大扫除的时候才发现,原来它们也可能只是多动症犯了,因为我也反复发现新的需要做的事、更换工具并四处张望 🤣

  • 谈笑风生
    platypus platypus Post #27

    ACM 校赛和参赛的人、小学期 ACM 培训以及参加培训的人、oi 以所有的这些东西都是相关的。它们的共同点是功利性。不可否认,有人打 oi 很功利,因为以前拿奖可以参加自主招生;有人参加小学期 ACM 培训很功利,因为可以抵掉计算机课;有人参加 XJTUPC 是为了加德育分。同时也不可否认,有人学算法是因为热爱算法。但即便如此,如果以上列举的和算法有关的活动如果失去了功利性,还能有多少人来参加?还有多少人能坚持下去?这个答案没有人知道,因为没有人实验过。这就是为什么只有 ACM 相关的比赛能办下去,而其他比赛,其他培训都很难办下去的原因——功利。但是我们不能责怪学生功利,因为学生的功利是有原因的,这一点在很大程度上归功于学校。学校对学生功利性的影响是潜移默化的,例如:保研和德育分挂钩;每年保研的学长学姐出来分享保研经验,如何卷嬴其他人等等。这就导致了如果一个事情不功利,学生就没有时间去做它,也就导致学生没有时间发展自己的兴趣,但还是那句话,功利不怪学生,为什么 us 的学生就能发展自己的兴趣呢?因此要解决功利的问题,首先需要做出改变的是学校。话说回来,小学期 ACM 培训解决了功利的问题,所以有的学生可以在这里追求自己的兴趣,这是好事。那为什么和 oi 有关呢?因为要建设这个 ACM 培训课程,使之具备足够抵消学校计算机能力提升课程的质量,需要师资,需要制作 ppt,需要出题,需要管理 oj 网站。那么师资从哪里来呢?显然 oi 出身的人更具备给别人讲课的能力。那为什么其他领域就不能走 ACM 的老路呢?一个核心的问题就是我刚才说的,很少有人高中就接触 Linux、区块链、开源、CTF、后端开发等事物。由于人才培养周期很长,你不能指望 xjtu 的学生个个都是天才——零基础学 cs 直接飞升,拳打开源社区,脚踩中本聪,手撕 Linux Kernel 源码——通常需要花 2-3 年的时间,一个天赋较好并且很努力的 xjtu 学生才具备教其他人知识的能力,而一般人需要 3-4 年。然而等到大三大四了,同学基本都开始考虑毕业去向,准备毕业了,没有什么多余的时间,也就无法成为“师资力量”。课程建设不好,就无法开展试点,如果课程只是理论上的,没有实践经验,就无法向学校提出“功利”上的申请,解决功利问题,也就导致几乎没有人参加课程。想保护学生的兴趣,就要解决学校层面的功利问题。拿具体事例来讲,我们曾经建设过《后端开发导论》课程,解决了师资、ppt、autograder、documentation 等问题,最后在试点环节失败了。第一节课有 40 个人来上课,此后每节课少一半人,而且是恰好一半,到第四节课只有 5 个人来,因此第四节课之后就没有上了,宣布课程结束。但有意思的是什么呢?上课没有考勤,但我们为了给大家功利上的奖励,每周一次代码作业,完成了作业就有院级集体活动加分。也许是奖励过于蚊子腿,第一次作业收到 16 份提交,第二次作业仅收到 5 份提交。原本作业有最低分数要求,但课程结束后,为了给参加活动的同学多发奖励,我们宣布只要今晚 23:59 之前有提交就给加分,结果当天晚上有一个同学提交了。这个现象非常有意思,其中的道理不言自明。曾经钱院还开设过 Missing Semester 综能课程,也以同样的结局告终。所以此后所有的公益教学课,和与之相关的比赛等等,都必须解决功利性的问题,要么得到学校支持,要么学校先做出改变,拒绝将学生向功利化的方向引导。如果无法解决此问题,必将得到失败的结局。Don't reply me or raise more doubts. I've already shared everything I know here. If this doesn't clear up your doubts, that's all. At least it will make sense for someone. Again, DO NOT REPLY. If someone is interested in course reform or pedagogy, we can have another discussion. For this discussion, I'll stop my comments here, forever.

    Best wishes,
    platypus

  • Ziqian_Chen Ziqian Chen Post #1

    acm 赛制,至多三人组队形式参赛。参赛费每队 800 元。

    报名细则请加 ACM 大群了解

    qq 群:526350936

    我的 ACM 之路果然有问题群聊二维码|357x375

    欢迎在话题下提问、寻求组队。

  • ❤️ Liked post in 感觉很糟糕
    谈笑风生
    greyishsong greyishsong Post #11

    那我聊聊自己的本科生涯吧。

    高三因为打 OI 和自己不太清楚院校教学水平,最终有点意外地来到了西交,并且没考上电类而进入了机类。此时我只能说是比较喜欢计算机,对这个学科未来有多少可能的方向还完全不懂。为了能在大二转专业到计算机,信心不太足的我最后放弃了班长的工作、离开了挑战网,希望自己能拿到还不错的成绩。

    然而大一的我还是比较封闭的,不知道考前针对性刷题可以快速提高分数,而我又不是很擅长数学,所以高数线代之类的课程分数都不算多高。倒是因为比较好的空间想象力而在工程制图上拿到了很少有的高分。过了一年有点忙又有点茫然的日子,最后在大类内部排 20% 左右,最后还算顺利地转入计算机。不过转专业考试和小学期 ACM 校队选拔冲突了,结果有好几场比赛没怎么打,也没进入校队。

    到了大二,我觉得既然没进入校队,那也就不强求竞赛了。但我不怎么擅长应付,这一年里计院过于贪大求全的课程安排让我非常疲惫,偏偏不少课程糟糕的教学质量又没给我什么收获。结果这一年也有点浑浑噩噩地过去了,甚至还因为记错考试日期挂了数电。期间参加过云计算方面的大创、尝试过希冀的 OS 能力挑战赛(后来因能力不足而放弃 🤣 ),也玩过一些 Web 相关的技术,都没找到让自己很兴奋的方向。

    一直到大二结束,我依然是个没什么方向感的学生,可能也就比系里的同学们多一点高中 OI 的经历,所以不太害怕写代码,仅此而已。相较于早早自己找高质量资料自学的同学们,见识应该是落后了很多的。不过数理逻辑的老师和优化方法的老师都很认真,让我体会到好课和差课差距是非常巨大的。

    大三上遇到了导师,当时老师只负责图形学课程中大概四分之一的课时,但那一部分是很真诚的,知识密度也很大,最重要的是我听得很兴奋。然后我开始了解到 GAMES 课程,了解到更多关于图形学的东西。在做过一些学习和尝试之后,我觉得这个真好玩,然后就跳进了图形的坑里。其实计组和 OS 这些课都挺能引起我的兴趣,不过都不是那么想做。我是对可见的东西感兴趣吗?也许但不尽然,比如我对前端技术的兴趣就不太大,对建模的兴趣也大于渲染。

    在差不多期中的时候我联系导师,然后在老师的介绍下开始学 GAMES 101,本来打算是大三下就进组,后来因为某些身体原因沉寂了大半年。保研的时候,发现自己因为大二挂掉的数电而成绩不够,于是紧紧张张开始考研,最后三个月上岸。加上复试和毕设的一些杂务,我是到大四下学期才真正开始图形学(包括技术和论文)的学习之旅。

    这么一看,我上了两年半大学才找到自己喜欢的方向,上了三年半才开始为之作出一点点努力——这进度不快吧。一些同学还是比较抬举我,说我挺厉害之类,但我真的不是个动作特别快或者目标非常明确的人。好多同学在我看来没真正走出尝试的那一步,了解一个方向的时候没还没看到 dirty 的部分就转头去做别的了。我还是认为,至少你要看到 dirty 的部分之后依然不讨厌,才能说自己比较喜欢它。而如果没看到这一步,大多数好恶都有比较重的冲动成分。

    我也不是说每个方向都要做很深的实践,那是很耗精力的事情。至少我这种天分中等精力又不太充沛的人做不到。但你可以多看看“课外”的东西,比如说嵌入式的核心知识体系当然很漂亮,但看看 data sheet 呢?看看五花八门的非标优化呢?OS 谈概念是有很多家精妙理论的,但像 Windows/Linux 这样的系统随便查查就能发现很多概念上不大漂亮的地方。也不必特别理解这些工程实践的原因,但总是要看看,如果你有深究、解释、优化它的冲动,这不就很好吗?我觉得喜欢和不喜欢的区别主要在于“这个好麻烦/奇怪但好有趣”以及“这个好麻烦不想看了”之间。

    读研之后写作越来越少,真是笔力日拙,所以就说这么多吧。肯定有好多词不达意或者语无伦次的地方,希望多少能帮到你点。

  • uika_winwing uika_winwing Post #1

    Recurrent Problems


    本章介绍了三个问题:Hanoi 塔,直线切割平面,Josephus 环.

    前两个问题是个引子,主要讲了怎么分析问题,从小的问题入手 [look at small cases], 找到更 general 问题的通解.

    The Tower of Hanoi

    如果要移动 00 层的塔,那步骤当然是 00. 即:

    T0=0T_0 = 0.

    我们要将一个 nn 层的塔转移到另一根 peg 上,就需要先将其上的 n1n - 1 层塔转移到另一根 peg 上,然后移动第 nn 个 disk, 再将 n1n - 1 层塔移动到 nth disk 所在的 peg 上。于是,设移动 nn 层塔到另一根 peg 上所需的步骤为 T(n), 则我们可以在最多 2Tn1+12T_{n-1} + 1 步内完成。由此得到:

    Tn2Tn1+1T_n \leq 2T_{n-1} + 1.

    我们由以上的推理只得到了上界,那下界呢?

    由于我们必须得在某一步时将 nth disk 移动,所以在这步之前前 n1n - 1 层塔的移动必须完成,也即必须花费 Tn1+1T_{n-1} + 1. 在这之后,虽然我们可以多次移动 nth disk, 但在最后一次移动后必须将 n1n-1 层塔移到其上,所以又将花费 Tn1T_{n-1}. 由此得到:

    Tn2Tn1+1T_n \geq 2T_{n-1} + 1.

    有 boundary value, 有 equation for the general value, 我们就得到了一个 recurrence:

    T0=0T_0 = 0;
    Tn=2Tn1+1T_n = 2T_{n-1} + 1, for n0n \geq 0.

    然而仅有递推解很难满足我们快速计算的需求,因为我们还想找出一个 closed form.

    什么是 closed form?

    An expression for a quantity f(n)f(n) is in closed form if we can compute it using at most a fixed number of "well known" standard operations, independent of nn.

    简单来说就是通解.

    依据递推式列举了前几项后,我们猜测 Tn=2n1T_n = 2^n - 1. 接下来用归纳法证明就行了.


    其实也可以通过变换来找到通解:

    Add 1 to both sides of the equations:

    T0+1=1T_0 + 1 = 1;
    Tn+1=2Tn1+2T_n + 1 = 2T_{n-1} + 2, for n>0n > 0.

    这样的话关系就不难看出了.

    The Josephus Problem

    我们设 nn 个人形成的环最终幸存者的编号为 J(n)J(n), 游戏规则是每数到第 2 个人就令其自杀.

    不难发现如果 nn 为偶数,则游戏进行一圈后会除掉所有偶数编号的人,只留下奇数编号,且会回到起点 1 号。这就相当于让这 n/2n / 2 个人重新开始游戏,而每个人的编号除以 2 并向上取整.

    这样我们就成功缩减了问题的规模:

    J(2n)=2J(n)1J(2n) = 2J(n) - 1, for n1n \geq 1.

    对于奇数个的情况,用同样的方法可以得到:

    J(2n+1)=2J(n)+1J(2n+1) = 2J(n) + 1, for n1n \geq 1.

    再加上 base case, 则我们又得到了一个递归:

    J(1)=1J(1) = 1;
    J(2n)=2J(n)1J(2n) = 2J(n) - 1, for n1n \geq 1;
    J(2n+1)=2J(n)+1J(2n+1) = 2J(n) + 1, for n1n \geq 1.

    尝试写出前几项结果得到:

    n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
    J(n) 1 1 3 1 3 5 7 1 3 5 7 9 11 13 15 1

    Let n=2m+ln = 2^m + l, and we get:

    J(2m+l)=2l+1J(2^m + l) = 2l + 1, for m0m \geq 0 and 0l<2m0 \leq l < 2^m.

    显而易见,只要 nn 是 2 的幂,则 J(n)=1J(n) = 1. 对于一般情况 where n=2m+ln = 2^m + l, 经过 ll 个步骤后 nn 变为 2 的幂,并且此时游戏停留在编号为 2l+12l + 1 的人身上。所以这个 closed form 就得证了,即使不使用归纳法.


    "2 的幂" 又让我们联想到了二进制,其每一位数都代表了 2 的幂的个数.

    我们将 n 写成二进制,得到 n=(bmbm1...b1b0)2n = (b_m b_{m-1}...b_1 b_0)_2, 且令 bm=1b_m = 1, 即忽略 leading 0. 则可以得到:

    n=(1bm1bm2...b1b0)2n = (1 b_{m-1}b_{m-2}...b_1 b_0)_2, (bm=1b_m = 1),
    l=(0bm1bm2...b1b0)2l = (0 b_{m-1} b_{m-2}...b_1 b_0)_2,
    2l=(bm1bm2...b1b00)22l = (b_{m-1} b_{m-2}...b_1 b_0 0)_2,
    2l+1=(bm1bm2...b1b01)22l + 1 = (b_{m-1} b_{m-2}...b_1 b_0 1)_2,
    J(n)=(bm1bm2...b1b0bm)2J(n) = (b_{m-1} b_{m-2}...b_1 b_0 b_m)_2, (bm=1b_m = 1).

    我们惊奇地发现 J(n)J(n) 的结果就是将 nn 的二进制最高位挪到最低位.

    Generalization

    现在我们可以思考如何求解更加一般形式的递归。比如,将 The Josephus Problem 的递归形式改写成:

    f(1)=αf(1) = \alpha;
    f(2n)=2f(n)+βf(2n) = 2f(n) + \beta, for n1n \geq 1;
    f(2n+1)=2f(n)+γf(2n+1) = 2f(n) + \gamma, for n1n \geq 1.

    我们列举出前几项的结果:

    n f(n)
    1 α\alpha
    2 2α+β2\alpha + \beta
    3 2α+γ2\alpha + \gamma
    4 4α+3β4\alpha + 3\beta
    5 4α+2β+γ4\alpha + 2\beta + \gamma
    6 4α+β+2γ4\alpha + \beta + 2\gamma
    7 4α+3γ4\alpha + 3\gamma
    8 8α+7β8\alpha + 7\beta
    9 8α+6β+γ8\alpha + 6\beta + \gamma

    f(n)f(n) 改写成:

    f(n)=A(n)α+B(n)β+C(n)γf(n) = A(n)\alpha + B(n)\beta + C(n)\gamma,

    同样令 n=2m+ln = 2^m + l and 0l<2m0 \leq l < 2^m, for n1n \geq 1, 可以猜测:

    A(n)=2mA(n) = 2^m;
    B(n)=2m1lB(n) = 2^m - 1 - l;
    C(n)=lC(n) = l.


    为了证明 A(n)A(n), B(n)B(n), C(n)C(n) 的表达式,我们可以采用 repertoire method:

    First we find settings of general parameters for which we know the solution; this gives us a repertoire of special cases that we can solve. Then we obtain the general case by combining the special cases. We need as many independent special solutions as there are independent parameters.

    首先,我们令 α=1\alpha = 1, β=γ=0\beta = \gamma = 0, 则 f(n)=A(n)f(n) = A(n). 该递归变为:

    A(1)=1A(1) = 1;
    A(2n)=2A(n)A(2n) = 2A(n), for n1n \geq 1;
    A(2n+1)=2A(n)A(2n+1) = 2A(n), for n1n \geq 1.

    很容易得到 A(2m+l)=2mA(2^m + l) = 2^m.

    接着,将 f(n)=1f(n) = 1 代入递归表达式中得到:

    1=α1 = \alpha;
    1=21+β1 = 2\cdot1 + \beta;
    1=21+γ1 = 2\cdot1 + \gamma.

    解得 (α,β,γ)=(1,1,1)(\alpha, \beta, \gamma) = (1, -1, -1). 将此结果代入 f(n)f(n) 表达式得:

    f(n)=A(n)B(n)C(n)=1f(n) = A(n) - B(n) - C(n) = 1.

    最后,将 f(n)=nf(n) = n 代入递归表达式得:

    1=α1 = \alpha;
    2n=2n+β2n = 2\cdot n + \beta;
    2n+1=2n+γ2n + 1 = 2\cdot n + \gamma.

    解得 (α,β,γ)=(1,0,1)(\alpha, \beta, \gamma) = (1, 0, 1). 将此结果代入 f(n)f(n) 表达式得:

    f(n)=A(n)+C(n)=nf(n) = A(n) + C(n) = n.

    至此,我们已经收集到了充足的武器库:

    A(n)=2mA(n) = 2^m, where n=2m+1n = 2^m + 1 and 0l<2m0 \leq l < 2^m;
    A(n)B(n)C(n)=1A(n) - B(n) - C(n) = 1;
    A(n)+C(n)=nA(n) + C(n) = n.

    由此,A(n)A(n), B(n)B(n), C(n)C(n) 的表达式可以轻松得证.


    那么之前的二进制解法在这个 general case 下是否还适用呢?

    事实上,我们可以将这个 general recurrence 改写为:

    Let β0=β\beta_0 = \beta and β1=γ\beta_1 = \gamma,

    f(1)=αf(1) = \alpha;
    f(2n+j)=2f(n)+βjf(2n + j) = 2f(n) + \beta_j, for j=0,1j = 0, 1 and n1n \geq 1.

    同样设 n=(bmbm1...b1b0)2n = (b_m b_{m-1}...b_1 b_0)_2, 则有

    \begin{align}f((b_m b_{m-1}...b_1 b_0)_2) &= 2f((b_m b_{m-1}...b_1)_2) + \beta_{b_0} \\ &= 4f((b_m b_{m-1}...b_2)_2) + 2\beta_{b_1} + \beta_{b_0} \\ &\vdots \\ &= 2^m f((b_m)_2) + 2^{m-1}\beta_{b_{m-1}} + \cdots + 2\beta_{b_1} + \beta_{b_0} \\ &= 2^m \alpha + 2^{m-1}\beta_{b_{m-1}} + \cdots + 2\beta_{b_1} + \beta_{b_0} \\ &= (\alpha \beta_{b_{m-1}} \beta_{b_{m-2}} \cdots \beta_{b_1} \beta_{b_0})_2 \end{align}

    其中,α\alphaβ\beta 取值不局限于 0011.


    如果想要进一步 generalize, 则可以考虑递归:

    f(j)=αjf(j) = \alpha_j, for 1j<d1 \leq j < d;
    f(dn+j)=cf(n)+βjf(dn + j) = cf(n) + \beta_j, for 0j<d0 \leq j < d and n1n \geq 1.

    同样的办法,我们可以找出解:

    f((bmbm1...b1b0)d)=(αbmβbm1βbm2...βb1βb0)cf((b_m b_{m-1} ... b_1 b_0)_d) = (\alpha_{b_m} \beta_{b_{m-1}} \beta_{b_{m-2}} ... \beta_{b_1} \beta_{b_0})_c.

  • ❤️ Liked post in 晚安
    谈笑风生
    aaaaaw kx Post #1

    晚安

  • 谈笑风生
    uika_winwing uika_winwing Post #5

    努力沉淀与积累信息和知识的网站,让一届一届的同学不要陷入永远的轮回。不过能做到吗?

  • anonymous_coward_old Anonymous Coward Old Post #8

    This website also acts as an informal test on XX netizens’ extent of reliance on closed-source and non-free network. It turns out people and environment are transforming and accustoming to each other. XX netizens like and deserve the status quo.

  • ❤️ Liked post in 【2024 春】美本流水帐
    m0rsun m0rsun Post #84

    突然接到通知停课,好爽,出游了
    IMG_20240301_093004|690x162

  • ❤️ Liked post in 深度学习个人笔记分享
    学术专区
  • ❤️ Liked post in 【2024 春】美本流水帐
    m0rsun m0rsun Post #44

    最近对“大脑升级”产生了很多新的理解,回头开个帖专门写一下

  • ❤️ Liked post in 【2024 春】美本流水帐
    m0rsun m0rsun Post #1

    想开这个帖很久了,但是因为一直在纠结形式所以迟迟没有动手。为了让自己行动起来,本帖采用流水帐形式,因此可能包含任何内容。

  • anonymous_coward_old Anonymous Coward Old Post #10

    什么活动记录都木的

    Stats

  • uika_winwing uika_winwing Post #9

    好好好 🥵

    得想个办法联系一下。不过老师好像偶尔也会逛本站,不如直接在这 ping 出来交流一下。但需要有人来介绍本站的功能和图形学课程的实践

  • ❤️ Liked post in Rails 学习"打卡"
    谈笑风生
    anonymous_coward_old Anonymous Coward Old Post #1

    久闻 Ruby on Rails scales from HELLO WORLD to IPO,虽然今天的互联网爆款应用出现得越来越少, 听说 Ruby 程序员不好找工作(以前在 社区 上看的),技术栈杂而不精的我很有兴趣学习 Rails 这个 古老 却拥有 蓬勃生命力 的 MVC Web 框架。

    昨天分两口气看完 Meta Discourse 社区上的 主题初学者指南 [1]插件开发初学者教程 [2]
    Discourse 实际上在 Rails 框架和 Ember.js 之上,又把很多功能包装了一下,提供 ruby 和 js 两侧的 API;页面布局采用结构化设计,分割和包装成 outlet 和 widget 供插件和主题开发者灵活运用

    但光学开发 Discourse 插件不能替代 Rails 的学习(听说有 Qt 写多了的人反倒不会常规 C++ 编码)。今天看了 Rails doctrineRails 信条),感受到什么是为开发者着想的高质量软件设计,对于一个 04 年释出源码的框架这非常难能可贵。(相比之下,Unity 的软件使用起来容易让人抓狂,比如每次改完源码切回 Editor 和进入 play mode 前及秒钟的 reloading domain、界面缩放、包管理器,给人的感觉就是 Unity 的开发者自己不用Unity;而 Rails 的主要开发者 DHH 不仅是赛车手,自己用 Rails 做了 Basecamp & HEY;这就有点像 GTK 最初是 GIMP 的专用开发库(GIMP Toolkit),后来发展为 Unix-like 系统下开发 图形界面 的应用程序的主流开发工具之一)。

    (我高度怀疑自己有 ADHD,所以经常 blabbering。)

    闲话少说,下面就来摘抄一些 Rails Doctrine:

    1. 程序员的幸福最大化
    2. 约定优于配置
    3. 主厨精选
    4. 多元化的设计模式
    5. 推崇优美的代码
    6. 提供实用工具
    7. 重视整合系统
    8. 进步比稳定更重要
    9. 包容并重

    程序员的幸福最大化

    是 Ruby 造就了 Rails,所以第一条信条便是从创造 Ruby 的核心理念所提炼出來。
    早期 Ruby 的极端邪说就是把程序员的幸福度放到第一位。还把追求幸福置于驱动编程语言与生态圈前进的考量之上。

    Ruby 很看重函数式编程,消除控制流,写出来的代码很优美。学习了这类语言之后,再看在嵌入式领域大量使用的 C 的代码,感觉丑陋异常、不忍直视。

    约定优于配置

    早期 Rails 的生产力座右铭是:“你不是独一无二的,大家都一样”。只要放下了自负的个人喜好,便可以跳过无谓的世俗决定,专注在最重要的地方下更快的决定。

    有人在乎你的数据库主键命名用什么格式吗?用 idpostIDposts_idpid 真的有差别吗?这真的是值得反复讨论的吗?不!

    Rails 的部分使命就是,帮助开发者在日渐复杂庞大的 Web 应用程序决策丛林中劈荆斩棘。几千个无谓的决定只需要做一次,而若是别人帮你做这些决定,那就更好了。
    ...
    主厨精选

    ...
    所以 Rails 我们根据大局考虑,把选择减少到一套好的工具,让每个工程师可以从中挑选:一套为了大家好的工具。好处如下:

    1. 分散风险:当大家都用预设的方式来使用 Rails,我们有共同的体验。这个共同基础让我们可以容易指导和帮助新人,大家有讨论的共同基础。就好比大家昨晚七点都看了某个节目,所以明天大家都有共同话题可以谈论。进而培养出更有凝聚力的社区。
    2. 大家熟练使用相同的工具:身为一个全栈的框架,Rails 有很多可以移动的组件,这些组件之间如何协调工作?如何独立工作?两者同样重要。多数的软件开发者的痛苦不是来自于独立的组件,而是组件之间的互通。当我们用同样的方式来使用这些组件,相同的配置便可以得出相同的错误,则大家受的苦便减少了。

    我感觉这是 Rails 能做到from HELLO WORLD to IPO的原因之一,很多应用无非都是 CRUD,很多代码都差不多的。

    进步比稳定重要

    当一个系统已经存在超过 10 年,比如 Rails,自然会慢慢僵化。每一处的修改,都有百万种理由可能会变成别人的困扰,或是有人仍需要旧的行为。这对他们来说都是合理的理由。

    但若我们太仔细听取保守派的意见,我们将永远不知道另一边的声音是什么。我们需要勇敢地做出改变,打破陈规,然后才可以茁壮演化。正是这样的演变,才让 Rails 存活下来,并可能继续繁荣发展(数)十年。

    这些理论上都很简单,但实际做起来却很困难。特别是你的应用因为升级大版本的 Rails 时,因为有不兼容的变更而坏掉了。正是此时,我们珍重[进步比稳定更重要]的价值观,这个价值观给我们力量来搞定升级,搞清楚为什么并与时俱进。

    但这不代表我们就可以加入不需要的功能,或是胡来把别人的应用搞坏了。Rails 2 升到 3 的迁移噩梦,仍在经历过的人身上阴魂不散。那真的是很艰难的决定。修改太大使得许多人停滞在 Rails 2.x 无法前进,有些人更是讨厌至极。可我们从大局来看,这件事仍然是值得的选择。
    ...
    最终进步的是人,以及人们乐意做出改变。这也是为什么,像 Rails CoreRails Committers 这样的团队里没有终身职位。这两个团队是给活跃的,致力于带动框架进步的那群人而设定。对某些人来说,可能就几年,但我们永远感激他们做出的贡献,这些贡献可能将持续影响我们几十年。

    说起进步比稳定重要,我想起了 Arch 发行版的 交流社区(BBS) 至今仍然用 自从 2021 年就停止维护的 FluxBB,迁移到 Discourse 的工作从 May 2023 至今没有看到进展。(RedHat 赞助的发行版就好得多,比如 Fedora 有 Discourse 官方社区:https://discussion.fedoraproject.org/ )。

    作为一个滚动更新的、在软件新版本上最激进的发行版,Arch 的软件基础设施有点太老旧了。即使去年将 bug tracker 从 flyspray 迁移到自建 GitLab,官方软件包的 PKGBUILD 也统一到 GitLab,用户打包的软件包 PKDBUILD 分享平台(AUR)的 aurwebN 多年没什么功能和界面的变化了,bbs 用的软件 fluxbb 3 年前就没人维护了(还是 php 写的,想必有很多漏洞吧),Arch Wiki、AUR、官方软件仓库的 GitLab 这几个的用户系统仍然互相独立,不仅如此,GitLab 更是由于 "influx of spam" 而停止公开注册,要新账号还要发邮件人工审核 😅 :(好在可以用 GitHub SSO)
    Screenshot_20240206_231027|690x261, 50%
    然而 Arch Wiki 万年不变地采用 pacman -V|base32|head -1 验证方式都没遭到"influx of spam"而停止公开注册。
    Screenshot_20240206_231254|690x449, 50%

    (这里再次证明了我是 ADHD 患者 😭)


    1. 教程太长,看到 decorateWidget 差点放弃了。还是应该有选择性的看,简单的地方看快,重要的和过于复杂的地方用 Textmarker 插件标记出来以后再看。 ↩︎

    2. eviltrout 很贴心的分成了 7 部分,看起来舒服多了;也是因为主题开发涉及到很多 Ember.js,相当的复杂,看来是我以前小瞧了前端开发。(浏览器内核的复杂度不亚于作业系统内核) ↩︎

  • Rin Tomotake Rin Post #255

    刷真题永不过时

  • ❤️ Liked post in 健身环不要摆挑战
    游戏 / 娱乐
    El_Shaddoll_Midrash 米德拉什 Post #1

    水源同名楼 继续讨论:

    2024020122342800-638E7E1EEC4CD8A239243633C0345A07|690x388
    2024020122343600-638E7E1EEC4CD8A239243633C0345A07|690x388

    值得庆祝的 day60,在这里也同步更新一份

  • 一只玉米人 玉米🌽 Post #1

    The image shows a screenshot of a social media post with text in Chinese, and the post has received a number of reactions and comments.  (Captioned by AI)|412x500
    贴吧大文豪稳定发挥🤣🤣

  • Alan C Post #10

    我其实高中打的是 CNBO(还拿了牌,不过 tm 正好赶上自招取消)
    主要是对生物学堆人力堆实验的研究范式感到不适,所以一直想用人工智能的方法部分将生物学从这个范式中解放出来
    能去的学校没有 Bioinfo 专业,那就读一个 CS 吧(CNBO 基本学完了生物知识,懒得再读生物专业了)(AI 钱班考不上)
    题外话:我其实当时就猜到了互联网一定会过热,不过本来我也没准备往互联网走

  • 一只玉米人 玉米🌽 Post #14

    小学五年级的时候,由于当时有个同班同学在搞数竞(华杯赛迎春杯希望杯啥啥啥的),所以我知道有数竞这么个东西(我的数学之路就在一次机缘巧合之下开始了,具体就不在这里讲了,我给比较熟的人都讲过,不想被认出来)

    然后从初中开始就一直学着(这导致从初一一直到高三没过过寒暑假)

    早些时候,可能因为起步早一些,所以显得比较拔尖。一晃眼到了高二,虽然学的开心,也出去参加过一些比赛,但是发挥不稳定,属于是看出题人吃饭,最后的高联也成绩一般(而且没有自招了😰)

    没成想,初一初二上培训班 + 去高中部听课(真的算得上是“兴趣班”,感觉当时也没复习/好好学啥的,不太用心,主打一个听个乐呵)+ 高二停课八个月专搞竞赛,最后却是对升学毫无帮助,这狠狠地让我破防了,摆了一个月,然后认清了现实,开始好好学高考。

    一模二模全是依托勾史(理综动辄 200-220 真让我破防了)好在,🐭🐭在高考前一个月终于打通了任督二脉,最后还能上个虾饺😿
    在高联大溃败之后,🐭🐭超级伤心💔,准备大学上个物理专业,或者是去学微电子集成电路设计。结果虾饺的强基给我录走了,就学了数学😺

    后来上了大学,感觉高等数学真爽,可能我对高联初等数学的奇巧淫技感到疲劳了吧。。。我感觉这才是真正的数学,大学数学让我觉得自己真正学到东西了,给我带来了快乐😽(有些带来的快乐多,有些带来的少,但是期末带来的痛苦大于快乐😿)

  • greyishsong greyishsong Post #12

    回一个更详细的版本吧。

    我是高一在自己信息技术老师的介绍下接触 OI 的,本来入门就不算早了,高一还比较惫懒导致没多少长进。高二开始体会到了 AC 的快乐,还算认真但水平确实一般,第一次参加 NOIP(就是省赛)成绩也不好。

    到了高三前的暑假,眼看着要再参加一次省赛就得放弃七、八、九三个月的复习,但我又觉得不再试一次不甘心,一度紧张到和爸妈哭诉,这也是我迄今为止最后一次哭出来。爸妈说高考也好竞赛也罢,拿到什么成绩没那么重要,自己不后悔更重要,我就高三停了一个月课去和比我小一届的同学一起刷题训练。那是我高三身体最累但心理最轻松的一段日子,所以当时我觉得自己至少敢说是不讨厌计算机了。

    其实后来进入了计算机专业也挺有点迷茫的,不知道自己到底想做什么。后来接触了 GAMES 101 和我导带的图形学课(当时还只有三节),越发觉得自己喜欢这种“在计算机里低成本创造世界”的感觉,就跳进了这个坑里。至于为什么选几何建模方向,很大程度上和我这么多年做手工的兴趣有关——我会觉得计算机里的建模就像我在现实世界造物的一种延伸,比渲染出惊艳的图更让我感兴趣 😆

  • TsuinoSora TsuinoSora Post #1

    受到另一个帖子 greyishsong 学长的回帖的启发:

    greyishsong:
    wxystudio:

    求梦想的前提是你高中得有机会接触对应行业,了解了之后觉得很有意思。结果大家都在家里玩命刷题,对具体工作一无所知,所谓的梦想就和想象差不多。

    诚然如此。所以我还是相当感谢高中的 OI 经历和我的教练老师,虽然说我也没拿到多好的奖项,但至少驱除了我对计算机的陌生感并且让我确认自己在受到挫折之后还愿意继续做下去。

    在这水一帖,目光尽可能向过去看,大家为什么选择现在的专业

    先说说我吧,为什么选了计算机相关专业。

    没 OI 过,但小时候家里人不管我网上冲浪,白天也都不在家,我就经常为了某个要用计算机达成的目标各种查资料找资源整一天不带停。记得六年级突然想做一个 3D 的东西,然后就下了 maya,还各种看视频教程。还有小学玩 miinecraft 的时候搞服务器,整合包,然而当时还是没到自己写模组的地步。感觉自己很喜欢电脑这个东西。

    我后来高中认识了一个好朋友,他也是小时候就对电脑感兴趣,然后初一成功接触了 OI,然而写算法题还不满足,他中学就没局限于算法题,开发各种技术栈,高中就会很多技术了。然而我上了中学就没怎么整天玩电脑折腾了,只是挂着个念想,也根本没想着竞赛种种。现在想想感觉挺可惜的。

  • ❤️ Liked post in 建一个理科主题水楼!
    谈笑风生
    anon1678451 anon1678451 Post #16

    存在不能被任何图灵机 (Turing machine) 计算的函数 $ UC:{0,1}^*\to{0,1} $.

    函数 $ UC $ 如下定义:

    α{0,1},UC(α)={0,Mα(α)=1;1,otherwise. \forall \alpha\in\{0,1\}^*, UC(\alpha)= \begin{cases} 0,M_\alpha(\alpha)=1;\\ 1,\text{otherwise}. \end{cases}

    证明:假设函数 $ UC $ 可被图灵机计算,则存在图灵机 $ M $ 使得 $
    M(\alpha)\equiv UC(\alpha), \forall \alpha\in{0,1}^* $
    所以有 $ M(\lfloor M\rfloor)=UC(\lfloor M\rfloor) $.这与定义矛盾。
    注: $ {0,1}^* $ 为 0 和 1 组成的字符串, $ M_\alpha $ 为以二进制字符串 $ \alpha $ 表示的图灵机(数据和指令等价), $ \lfloor M\rfloor $ 为图灵机 $ M $ 的二进制字符串表示
    这个函数的构造方式有点像理发师悖论
    来源:COMPUTATIONAL COMPLEXITY A Modern Approach

  • Eternity-dream Eternity Dream Post #121

    数据结构与算法直接去刷洛谷题单比较好,课内部分感觉不是太适合

  • XLX 阿斯巴甜(含苯丙氨酸) Post #1

    红叶佬的文章,随手一转

    原文链接

    数字拜物教——GDP 批判

    原创 紅葉泡紅茶 2024-01-07 20:47 发表于上海

    引言

    GDP 只能用数字反映您与意识形态的关系,仅此而已。它无法测量美、天赋、财富、幸福、爱或人生意义。

    一个关于 GDP 的众所周知的老笑话是这么说的:两个人打赌,如果甲吃掉了一块粪便,则乙给他一千万。甲赢了赌局,但吃了粪便后心里非常不平衡;乙也认为自己白白损失了一笔巨款。因此甲说,如果乙吃掉另一块粪便,则甲也给他一千万。乙为了赚回失掉的钱吃掉了它。最终两人非常失落:他们没赚得一分钱,却每人吃了一块粪便。这时丙安慰他们说:你们尽管没有盈利,但却增加了两千万的 GDP 呀!

    实际上这个笑话并不成立,因为这种赌约并不会计入 GDP。但是它至少说明了一些真相。第一,GDP 已经成为非常重要的生活目标,人们会为了它而牺牲自己的快乐。它无疑成了当代最重要的数字,它的一举一动都会影响一个国家的经济生活。它就像是拉康所谓的“主人能指”一样发挥作用,而 GDP 取得统治地位不过短短半个世纪。第二,GDP 存在问题,例如它具有随意性,容易被操纵;它可能模糊了生产和非生产的边界,等等。

    这个笑话曾广泛用来暗示政府对 GDP 的操纵。实际上,除了中国之外其他国家也存在类似的情况。1987 年,意大利政府通过一个不那么科学的操作(强行估算地下经济产出)让 GDP 突然猛增五分之一,超越英国成为了第五大经济体,这增强了国内的民族主义自信和国民的认可度,当年举国上下一片狂喜——尽管生活水平依然如常。这个新闻作为一个症状,传达出来的信息是:

    第一,GDP 可以因统计方式不同而变化。尽管联合国统一公布的“科学的”统计原则限制了政府的操作,长达 700 多页的核算指南几乎没有任何人能够透彻理解。然而我们后文会指出,看似科学的统计中包含着数不清的暗箱操作的空间。许多项目本身就难以统计,还有许多需要斟酌处理的空间,这些会造成数据失“真”,给政府的估算方法留下了操作空间。

    第二,GDP 已经是统治合法性的基础了。政党选举和连任的核心指标就是能否提升 GDP;政策的有效性也首先用 GDP 衡量。GDP 本身并不能代表生活水平、国力,但它总是暗示着国力和生活水平,就好像卖火柴的小女孩在火焰中看到奶奶一样,尽管虚幻,但满足却是真实的。

    以上内容说明,除了统计学和经济学的重要性之外,这个数字更重要的是政治功能。从诞生之初,这个数字就和政治绑定在一起。配第作为核算方法与理念的提出者,一开始就将其命名为“政治算数”,并服务于战争和其他政治目的。同样,英美两国核算工作的兴起也是服务于政府的经济政策,以解决特定的政治任务(例如走出萧条或赢得战争)。美国核算工作的发起人库兹涅茨也正是因为模糊了政治目的最终被踢出局。这种事实长期以来很少人提及。

    这么说来,那个知名的苏联笑话应该适当修改。苏联红场阅兵中,在最后出场的原子弹阵列后走来的是国家计委,因为他们的破坏力比原子弹还要大。这个笑话不一定符合历史事实,但如果它修改如下,则一定符合历史:美国阅兵时原子弹后走来的是库兹涅茨——因为他的国民收入核算理念对战争胜利的贡献不亚于几个师(加尔布雷斯原话)!但是,GDP 与政治的紧密关系在当代的经济研究和日常意识中却常常被(也许是有意地)忽视了。

    综上,本文将从经济理论和思想史的角度,简要地谈谈 GDP 的发展、概念和矛盾。今天,每一位中国公民都无比关心 2023 年的 GDP 增速,仿佛它自身充满着意义;它的大小似乎直接影响了每个人的生活。统计局常常发布一个看得过去的数据,而微观个体的感受却并不满意。宏观数据和微观感受存在温差。这就有必要在 2023 年 GDP 还未公布时,问一下这个数字意味着什么了。

    GDP 的概念

    GDP 全称国内生产总值(Gross Domestic Product),乍一看它是一个非常清晰并且无争议的概念,但实际上“国内”、“生产”、“总”三个概念都是经过许多理论和实践上的争论才最终定调的。

    首先是“国内”(domestic)概念,与“国民”(national)概念相对,意味着任何非本国公民占有的生产要素的产出也计算在内。1991 年美国率先使用国内概念取代了国民概念,后续在国际上慢慢推行开来。显然这是经济全球化的必然要求,能简化统计的难度。中国境内生产的美国跨国公司计入中国 GDP,但并不构成中国国民的收入。不过它依然能表明中国境内的生产能力。一个小国或相对落后的国家,其 GDP 可能很大一部分都由外国资产组成,这也是诸多第三世界国家显得“繁荣”的原因。但是该国 GDP 在世界上的排名就并不能正确衡量该国国民的收入和消费水平。这种操作有掩盖南北国家之间价值转移的嫌疑。

    其次是“生产”,与“收入”相对。任何一本经济核算或宏观经济学教材都会提到,GDP 有三种算法,理论上三种统计方法得出的结果应该是一致的,分别是“支出法”、“收入法”和“生产法”,其分别是国内的所有消费、国内不同要素的总收入和生产过程的总增加值。所以生产和收入视角,结果应该相同(也正因此,所以国内生产总值的核算依然遵循传统称为“国民收入核算”)。但实际上,两种不同的视角会产生完全不同的理论后果,就仿佛从两个不同侧面看一个物体得出不同结果一样。这种不同视角的争议最初发生在西蒙·库兹涅茨(Simon Kuznets)和米尔顿·吉尔伯特(Milton Gilbert)这一对师徒身上。库兹涅茨从“收入”的角度出发,认为国民收入核算的本质是使用收入近似衡量本国国民的(能从市场中获得的)福利,而政府收入显然是对国民收入的一种扣除(除了属于收入再分配的部分外),不应该计算在内。但是吉尔伯特从“生产”的角度认为,政府所购买的产品是本国生产能力的体现,理应计入社会总产值中。库兹涅茨明确认为自己倡导的核算工作包含着一种道德主义和特定的哲学观念,而不是为政府服务的工具;而吉尔伯特则认为经济核算应该是对生产能力的客观衡量。后一种观点成为了主流,并且深入了民众的意识中。接受了当今经济学教育的读者们可能会很惊讶,竟然政府支出是否计入 GDP 也存在争议。后文我们会详细探讨政府支出如何计算。

    最后是“总值”概念,与“净值”相对,即包含了折旧在内的值。之所以使用总值而非净值,最主要的原因在于资本折旧难以统计拆分,并且在战争中折旧也是一种可以投入战场的资源,所以核算总值比净值更重要。但这种不同并没有引起理论上的困难,本文将不再讨论。

    GDP 的“Product”,是一种非常奇怪的语法。中文中的“总值”,给人留下的印象是一大堆商品使用某种值加总的结果。但英文的 Product 使用单数形式,留下的影响则是一个社会共同生产了一整个产品,这种产品是同质(或无质)、只有抽象的量的神秘东西。前者会让人自然质疑不同大堆商品相互比较时的可能性。例如美国和中国生产完全不同的商品,并且有完全不同的生产结构,其“总值”是否能够相互比较或如何相互比较呢?而后者留下的印象则是,世界上所有的国家都在共同生产一种 Product,可以没有区别地比较不同 Product 的大小(并且暗示谁的量大谁厉害)。然而,这种 Product 到底是什么、它衡量了什么?最初一看,GDP 好像是一种简单而平凡的东西,但对 GDP 的分析将表明,它却是一种很古怪的东西,充满形而上学的微妙和神学的怪诞。如果说马克思所说的“商品拜物教”不是意指这种人类对自己创造物所感到的神秘性和晦涩性,又会是什么?

    GDP 的思想史

    第一次国民收入核算通常会上溯到配第。配第第一次为英国国民收入进行核算的目的与凯恩斯类似,都旨在讨论如何筹措战争经费,因此涉及到税基问题。他提出了劳动价值论,其背后的政治目的是指出,正在上升期的资产阶级和雇佣劳动者阶级已经是重要的税收来源。对于配第而言,国民收入核算不存在任何晦涩的意义,它不是一种理论兴趣,而是有实实在在的政治目的,这一目的就是征税和战争,所以他将他的核算方法称为“政治算数”。可以顺带一提的是,正是他的这种方法将人当作了一个冷冰冰的数字(例如一个人一生可以带来多少价值,超过这个数目去为他治病就是不值当的),并且将生命和一切给人生带来意义的东西都化约为一个数字,并且可以进行成本收益分析。这种意识形态影响持续至今。

    然而,在 19 世纪政治经济学理论大繁荣的时代,国民收入核算却沉寂了。从后来者的视角我们可以轻易看出一些端倪:在资本的社会权力和市场的力量还不发达的 17 世纪,资本主义的建立需要一个强权国家或专制主义国家(absolutist state),它在政治上就需要对经济活动有细致入微的掌握与把控。这种现实或实践的要求促生了国民收入核算的形成。然而到了斯密的时代,现实的资产阶级革命开始反对国家的特权,在观念中表现为经济学家自觉反对国家干预市场活动,国民收入核算作为国家干预市场的手段,自然受到了忽视、冷落。然而,在 20 世纪 30 年代,市场突如其来的痉挛、癫痫——大萧条爆发了。从李嘉图开始,任何鼓吹市场能够从危机中自动恢复的自由主义者的学说都破产了,国家这个“守夜人”必须出动,国民收入核算的必要性复活了。

    科林·克拉克(Colin Clark)是配第精神的继任者,他批判当时经济学只注重理论推理而从未考虑社会现实,缺乏现实基础。他从配第身上学到了核算的方法,并指责斯密引导经济学走偏了方向。他对任何理论都非常谨慎,认为只有数据可以说话,因此他的一生并未提出任何理论框架(哪怕当他转而研究经济增长后)。直到后来在凯恩斯的影响下,理查德·斯通和詹姆斯·米德才为他的核算方法提供了一种系统化的框架与理论体系。克拉克自觉地为政治服务,政府需要利用这些数据观察经济并提出政策。他甚至认为经济学下属于政治学。可惜的是,他的工作并没有受到英国政府的认可。

    远在大洋彼岸的美国,库兹涅茨几乎在同一时期开始了国民收入核算工作。但是他并没有配第的理想,他认为国民收入核算的结果应该展示国民的生活水平,而不是为了政治服务。这显然是新古典经济学的观念,即认为经济生产的目的是为了满足人类消费(与之相比,马克思则明确指出资本主义的目的是获取剩余价值,满足人类消费的使用价值仅仅是副产品,因此人类应该团结起来跨越这种生产关系)。所以他为《社会学研究百科全书》所写的“国民收入”词条中,认为国民收入包含一个主观因素:“经济过程带来的满足感”。吉尔伯特后来批判这种思路是为“国民生产核算添加了不应该包含的道德维度”,而国民生产核算只应该表明一个国家的生产能力。并且,由于战争开支显然不会带来效用,库兹涅茨的核算方法在战争期间也不能很好地起作用。正是这个原因,美国商务部很快抛弃了库兹涅茨,后来他的研究在政治上再也没有起过重要作用。

    上述说明是对 GDP 形成思想史的一个极端简短、甚至有些扭曲的回顾。但是我还是希望传达一个观念:GDP 从诞生之初,就带着政治干涉的影子。许多国家在推行国民收入核算时都受到了阻力,因为统治者并未看出这种计算有什么意义。直到战争到来,统治者需要更细致地观察经济体时,国民收入核算的意义和必要性才显露出来。

    二战期间,美国通过国民生产核算,成功计算并调控社会的生产过程,在不严重影响居民正常生活消费的同时,转化生产结构并扩大了国民产出,满足了战争的军备开支。相反,德国的军事领袖则完全不清楚本国的生产能力,历史也见证了这场战争对德国人民造成的深重灾难。这个例子说明,GDP 从一开始就是政府观察、调控经济过程的工具。值得一提的是,这段历史也证明,人类是可以成功调控经济过程的,现实并不是像市场原教旨主义者描绘的那样,人类对经济过程完全无能为力。相反,国民经济核算的目的一开始就是为了“经济计划”。美国为战争所作的计划和企业的国有化(尽管是暂时的)证明了计划的可行性,这也是当时支持社会主义的经济学家之所以充满信心的原因。因为有了系统的产出核算方法,美国政府才得调配和控制不同产业的产出,权衡和统筹消费与战争,不仅保证了军火产出,还提升了国内消费,没有计划这是达不到的 [1]。

    但 70 年代的滞胀则打破了凯恩斯主义政策永续长存的幻想。50 年代起,随着战后经济发展,统计技术越发先进,政府对经济过程的观察也越发透彻,经济学家都认为世界进入了“富裕社会”,经济周期永久的消失了。经济停滞和衰退打破了这种幻想,政府的计划和调控好像都不管用了。马克思主义者会宣称,这是因为资本主义的本质,当私人占有生产资料和社会化大生产的矛盾持存时,任何调控都只能暂时解决问题,经济周期还会不停出现。市场原教旨主义者则认为,政府调控从根本上就干扰了正常的市场秩序,注定带来经济紊乱,正确的做法是让市场自动运行。后续历史的发展选择了后一种观念的道路。

    GDP 批判

    (1)GDP 的界限

    GDP 仿佛成了解决所有社会问题的灵丹妙药,所谓“在发展中解决问题”,只要 GDP 还在增长,那么一切社会问题都不是问题。然而,GDP 增长究竟意味着什么?GDP 增长能解决一切问题吗?

    首先,GDP 天然带有一种客观和科学的特征。计算一个社会的总产出,就好似计算食物中包含的卡路里一样清晰。然而,这是一个错觉 [2]。克拉克谨慎指出,GDP 本身并没有意义,只有长时期历时分析或同时期跨国比较时才有意义。库兹涅茨进一步声称,甚至跨国和跨时期的比较都可能造成误解。他的国民收入核算方法将重心放在了收入上,收入则由特定的分配结构决定,因此不同时期分配结构变化时,或不同国家有不同分配结构时,就不能相互比较。回到引言提出的语言学问题。从中文语境来看,“总值”意味着一大堆商品的合集,当不同国家生产着不同的商品,并且不同国家又不同的分配结构时,那就是不同的商品在不同程度上满足着不同的阶级,显然相互之间难以比较。而使用单数的“Product”,则从暗示的角度回避了这种可比性问题。

    例如,现代批评 GDP 的一个论据是,GDP 不能考虑非市场因素对人民福利的影响。对于一个非市场生产占比很大的国家而言,她的 GDP 可能很低,但这并不代表该国国民收入很低或生活水平很差,甚至也不意味着生产力水平很低。单看该国 GDP 很容易造成误解。这意味着,GDP 只是市场经济生产方式下的核算体系,它并不适用于史前或未来其他社会形式。

    因此,最主要的问题是问,GDP 到底核算了什么内容?从劳动价值论的视角来看,GDP 归根到底衡量的是一个社会提供的总劳动表现的市场价格。单位劳动创造的价值就是“劳动时间的货币表现”(MELT)。然而,吊诡的是不同国家的劳动时间货币表现并不相同。一些研究者认为这是不同劳动的生产力导致的,另一些人则激进地认为这是帝国主义国际秩序下全球价值链包含不平等交换的证据。总之,这是一个难以解释的问题。从斯拉法的数理模型看,给定技术条件下,分配关系的变化会改变商品的相对价格。这意味着,一个社会产出完全相同,消费的总商品完全相同,仅仅是分配关系变化后,GDP 也会变化。实际上,这确实是对新古典总量生产函数批判的一个理论回音。总之,分配关系的变化会导致 GDP 莫名其妙的变化,进而导致全要素生产率的变化——尽管从物理层面上而言,该国生产的产品完全相同。所以 GDP 究竟衡量了什么内容,至今没有人说清楚。马克思所谓的“商品拜物教”正是在此展现了它最精确的理论内容。

    另一个差不多的问题是,生产的含义是什么?哪些算生产哪些不算?一言以蔽之,在市场上交易的内容就是 GDP 核算的对象。但问题在于,很多对经济有重要贡献的现象(例如家务)并不具有价格;另一方面,很多有价格的对象并不是生产过程(例如引言中打赌的例子)。界限应该划定在哪里?

    从思想史上说,这显然是一个相当古老的问题。重商主义者认为只有生产白银的行业才是生产性的,重农主义者则认为只有农业才创造国民收入;古典政治经济学则认为只有物质产品才是国民收入,直到马歇尔才明确提出国民收入核算应该包含服务业。苏联的 MPS 体系的“有限生产观”(或物质生产观)建立在劳动价值论基础上,则认为只有物质生产部门才创造价值,而金融、商业等行业的产出仅仅是物质生产部门的转移。到库兹涅茨的时代,服务业占比愈来愈大,但政府支出应该如何核算依然是个有争议的问题。

    从上述历史发展过程看,GDP 核算的内容在逐渐扩大。然而,每一次扩大绝对不是出于逻辑原因,而是有政治目的上的考虑。尽管看起来“落后”,但任何一种有限生产观的核算框架在逻辑上是绝对自洽和一致的,例如劳动价值论可以使用价值转移方法研究金融利息和商业或服务业利润。尽管使用价值转移方法统计非生产行业可能相当繁琐,但并不会显著增加核算难度;实际上,由于只有物质生产部门创造价值,核算工作反而变得容易。相反,当代 GDP 的核算中,如何处理服务业一直是一个难点。当提到生产率时,服务业的生产率就像是个形容语上的矛盾,是宾词附错了主词。无论是新古典生产函数还是劳动价值论使用的线性生产函数,其理论对象都是物质生产****[3]****,用在服务业上难免牵强附会。例如,金融业的“生产率”指什么?实际上,金融业的“生产”更像是其他行业的成本,所以 20 世纪的核算长期将金融业当作中间投入,因而不会计入 GDP(实际上,这个部门的增加值是负的)。但 2008 年之后,联合国 SNA 则使用“间接计算的银行中介服务产出”当作金融行业服务的收入,此举使得 GDP 又膨胀了 10% 左右。

    所以如何为生产划定边界,并不是统计难度决定的问题,而更多的是由政治决定、也是由一个理论体系背后的方法论和世界观决定的问题。最典型的例子是政府支出。对于克拉克和库兹涅茨来说,政府支出并不给人带来福利,理所当然不应该划入“生产”中。很大一部分政府支出其实应该看作中间投入,这些支出本质上是为了生产过程服务,因而只是最终消费品和服务的“社会成本”。如果将这些成本也计入 GDP 则会包含重复计算。这个逻辑和前面提到的金融行业的例子是完全相同的。金融行业只是为了社会化生产过程服务的中间投入,它从未给人带来“效用”(除非以一种非常不讲理的方式定义效用),从新古典的视角看,出于一致性的考虑应该将它当作社会成本而非产出。正如库兹涅茨指出,“从一种启蒙的社会观点看,商业广告、金融和政府军事支出,都应该看作成本而非产出,因为他们与其说带来了福利,不如说造成了福利的损失。”

    然而,放在凯恩斯的背景下,事情则完全不同。凯恩斯的目的是为战争付款,因此政府支出当然应该看作产出,否则难以计算社会产品中用于政府支出的部分。所以凯恩斯的社会产出公式中,政府支出是 GDP 的重要组成部分,也是有效需求的重要构成,显然这种核算方式与新古典经济学的理论出发点不同。最终这种核算方法成为了主流,“生产”视角取代了“收入”视角(因为“生产”衡量社会的生产力,但产出并不一定能完全消费;而“收入”概念则暗示了生产者能自己支配的部分,因此不包含政府支出),库兹涅茨也被美国商务部排挤出局,尽管库兹涅茨从未放弃过对 GDP 的批判。

    不过,当政府支出构成 GDP 的重要环节时,造成了一种观念,好像经济下行时政府的支出可以提振经济。从 GDP 的数值上看,这是显然的事实;但是从经济生产的过程和目的看,政府支出却并不一定能为社会带来任何好处,反而可能降低人民的生活水平。同样的逻辑也一定可以适用于其他的行业。金融业计入 GDP 后,美国金融业的增长一度成为了 GDP 增长的重要动力,但是金融行业繁荣并不意味着实体经济或生活水平的提高。对于任何一个行业,都可以做如此的批判,哪怕是钢铁行业这种对当代经济活动极端重要的行业。归根结底这是因为,GDP 的增高并不是福利的增高。生产本身并不是目的(尽管在资本主义生产关系下,生产本身或资本增殖成了倒错的目的),它应该为了人民生活服务,当代社会却完全以 GDP 增长为中心。手段成了目的——19 世纪马克思指出的资本主义的颠倒,在 100 年后作为数字拜物教浮现出来了。

    对于熟悉投入产出表的读者,我们可以使用投入产出表来说明这一逻辑。设存在两个部门,第Ⅰ部门是生产性的,第Ⅱ部门是非生产性的。后者可以是政府支出、金融业支出等等。第Ⅰ部门使用 50 单位谷物产出了 100 单位谷物,其中劳动者获得了 30 单位。第二部门使用第Ⅰ部门 5 单位产品(例如政府购买的产品,银行的营业开销等),并且提供了 10 单位的服务(例如政府提供的基础设施建设,银行提供的咨询服务等)。第一种方法将第Ⅱ部门视为非生产性的,因此投入产出表应该写作:

    640|690x233

    第二部门消耗了 5 单位投入(例如政府的军事开支),这是对净产出的扣除,因此 GDP 为 45 单位谷物。而它提供的服务只是生产性部门的中间投入,因此不论为多少也不会在 GDP 中体现出来。而上文提到的第Ⅰ部门转移的 10 单位谷物则应该从资产账户单独计算,只是价值转移过程而不影响 GDP 总量。从这种视角看,第Ⅱ部门就是对收入的扣除和消耗,如果它确实是资本主义生产关系必要的,那么就是一种“必要之恶”。

    第二种方法将第Ⅱ部门看作生产性的。凯恩斯支持将政府支出记为 GDP 的组成部门,或者现代金融核算方法使用“间接计算的银行中介服务产出”将金融收入计入 GDP。可以写作下表:

    640 (1)|690x233

    显而易见的区别是,现在政府的 10 单位服务被记入了最终使用而不是中间投入中,因此 GDP 不再是 45 而是 55 单位。如果将第Ⅱ部门理解为金融,则相对而言处理更加特殊,涉及到资产转移(放贷利息收入)如何计量的问题,但本质上都是如何看待这些产出的问题,是视为一个社会的中间投入还是最终使用的问题。这显然仅仅是一种数字游戏,但背后隐藏着是社会对不同生产的不同标准。当将金融机构从其他部门那里分来的利息看作最终使用,并且现代的 GDP 的增长率愈来愈依赖于金融投机,这意味着社会对投机的认可和支持;同样,当政府支出直接影响经济发展状态时,一个国家积极对外侵略、提高政府支出,结果也可以提振经济,尽管国内人民的生活却可能受到阻碍。这意味着,政府在统计核算时的一个“无关紧要”的选择会直接影响人类整体的行为。如果说这不是拜物教,那么会是什么呢?

    第二次世界大战结束后,如何重建经济乃至整个世界格局,成为了人类面临的共同问题。人们不再愿意看到经济周期的出现、收入不平等、极端贫困等现象。GDP 则为这些问题提供了解药:只要经济不断增长,这些问题都可以解决。所以资本主义的合法性在于承诺 GDP 永恒增长,并且每个人都能分一杯羹。因此,哪怕在 70 年代后国民收入核算与经济计划或凯恩斯主义政策脱钩之后,当核算不再用于政府积极调控经济的过程之后,GDP 依然保留下来了——因为它必须通过它的不断增长来掩盖许多社会问题,以至于为政权提供合法性。这是 GDP 的第二个政治性质。在上一节我们提到了第一个政治性质,即 GDP 具有直接的政治功能,它为战争和其他政策服务。我们指出,因为 GDP 受到政治干扰,所以划定的生产边界相当随意;本质上,这就是因为 GDP 已经成为一个政府合法性的标志,政府需要通过各种技术来包装 GDP。

    这就是为什么,尽管不会对生产产生任何直接的实质影响,但政府总是倾向于操纵国内数据。对中国数据真实性的抨击一直甚嚣尘上,这难道不也是因为 GDP 的政治功能吗,即政府必须使用这个数据维持它表面的合法性?

    (2)其他批评

    不少人(尤其是新古典经济学家)还是意识到了,GDP 并不能表明人的幸福感和生活水平。在环境问题日益严重的今天,GDP 也忽略了环境破坏造成的成本(相反,治理环境污染的支出竟然还会提高 GDP)。这些批评都是正确的,正如上一节指出的,GDP 的拜物教性质意味着,必须将这些东西例如环境成本、福利因素放进 GDP 中,人类的社会行为才能受到调控。但是在我看来,一些批评的声音可能走错了方向。GDP 从始至终都不反映社会福利,也从未打算反映社会福利。至少从目的而言,GDP 是为了衡量一个社会的生产能力,让政府可以调控与观察经济发展情况。企图通过添加不同内容让 GDP 变得无所不包的操作只会让本就不客观的数据变得更容易受操纵。正确的做法或许是采用替代或补充的指标。

    人类发展指数(HDI)作为一个替代指标目前已经得到广泛使用,尽管主要是在 GDP 落后的国家,并且也未对政治决策有什么影响。但这个指标也并不是没有批评的声音。由于美国在排名上落后于北欧诸国,所以一些经济学家直言不讳地指出:“HDI 基本上是测量你的国家如何‘斯堪的纳维亚’的”。这说明这一指标相对而言也是异常主观的。然而,难道不能反过来说明,GDP 也仅仅是测量你的国家如何“亚美利坚”的吗?马歇尔计划是 GDP 核算普及于全世界的重要推动者。马歇尔计划的实行方经济合作署署长保罗·霍夫曼说到:“马歇尔计划传递的信息是‘你们可以变得和我们美国人一样’。”这难道没有明确地证明 GDP 的主观性和政治内涵吗?因此我们可以猜测,金融行业之所以加入核算,也主要是因为美国的金融业发展得愈发庞大了,当金融行业加入 GDP 后有利于美国 GDP 领先的优势。

    最后可以顺带评价那些计算事前 GDP 的工作。安格斯·麦迪森(Angus Maddison)首次测定了人类历史从公元 1000 年开始的 GDP。这个工作显然相当艰辛,并且令人惊讶:在市场经济占比相当小的时代,竟然可以测算 GDP!尽管对他的工作抱有相当的敬意,我还是必须指出一些疑惑(很抱歉我没有阅读学习他的学术成果)。测算史前 GDP 从技术上和理论上来说都是成立的。本质上核算 GDP 也就是将生产的产品赋予一个市场价格并加总起来。然而测算市场经济不发达的古代 GDP 时必然存在下面两个问题:第一,哪些产品应该计入 GDP?按照今天的核算方法,非市场交易与产出不计入 GDP,因此将古代非市场产出计入 GDP 时,必然会在不同的非市场产出中划定一条随意的界限,主观性就会非常大。第二,产品价格应该如何划定?显然随着时代变迁技术进步,产品的生产难度变化很大。当一个产品根本不在市场上交易时,这种商品的价格应该如何“科学”估算?这些估算势必造成计算结果不准确和过于主观。更重要的问题是,这种核算的意义在哪里?它能够说明人类生产率的进步吗?

    总结

    本文的核心内容可以总结为:GDP 远不是一种客观和科学的计算指标,它的计算受到政治目的的影响。哪些内容应该计入哪些不应该,应该如何计算等,都表明了政治的主观干扰。随后,我们可以做出一个冒险的推论:当代生产关系是资本主义的,所以 GDP 是代表了统治阶级意识形态的指标。在各种不同方面,都可以看到统治阶级的影子。

    当代生活可以说是围绕着 GDP 构建起来的。GDP 可以说是一种“纯粹意识形态”:它暗示着一种承诺,承诺幸福生活、国力强盛、安居乐业,但实际上它并不包含这样的内容。所以,最关键的问题就是 GDP 到底在衡量什么。经济学中常用 GDP 表示总产出,从而也用 GDP 增长衡量技术进步。但由于 GDP 中包含了很多和物质生产无关的因素,经济学家更需要警惕理论和实际核算对象的不一致。新古典经济学还认为 GDP 应该衡量效用,尤其是福利经济学家庇谷直接宣称货币衡量的就是“经济福利”。但事实上,这一思想很难和国民收入核算工作接洽。当代的国民收入核算实践中出现了很多逻辑上的悖论,大多也与这种思潮有关。例如,当一种商品质量上升时,理应带给消费者更多效用,但这种商品的价格却可能有所下降,即用货币反映的“效用”反而减少了。从反面来说,许多 GDP 核算之外的活动和环境变化也可以在 GDP 不变甚至下降时提高 GDP。再比如前面已经提到,库兹涅茨反对金融业和商业广告等收入或产出计入国民收入中,这是因为这些产出不如说是“负效用”,是社会的成本而不是产出,但现在金融业的产出反而占 GDP 的很大一部分,并且成为了经济增长的重要源泉。

    而由于 GDP 达不到衡量幸福的目标,越来越多人感觉到这个指标是无意义的。2008 年金融危机之后,许多民间团体、经济学家甚至国家政府在积极地寻找能代替 GDP 的指标,例如寻找能有效衡量自然环境成本的计算方法;或者寻找能衡量公民幸福度的指标。表面上看,这是因为 GDP 确实存在缺陷,它不能很好衡量效用。但问题在于,选择何种指标依然是从政治利益出发的,因而也不可能是客观和科学的。替代 GDP 的声音在 GDP 增长乏力的时期最大;美国一度想选择衡量收入而非生产的 GDI(Gross Domestic Income)代替 GDP,只因为在 2011 年 GDI 比 GDP 增长更快。同样,人类发展指数教育水平、人均寿命和经济水平的综合指标,但在中国一直声音微弱,也是因为中国在这一指标下排名很低。(难道因为排名低而闭眼不看,中国社会就能发展更好吗?)同样,尽管现在已经有非常多丰富的指标供政客选择,但显然对于发展中国家来说,选择 GDP 才是最安全的。

    而从古典政治经济学,GDP 实际上应该表明人类改造自然的物质生产能力。如果服务也可以看作一种资源(但它不能储存,和物质财富明显不同),找到合适的方法也可以将服务看作产出。但归根结底古典经济学视野下的“财富”只是一个国家的生产力水平,而不表明效用或幸福感。所以当代企图修改 GDP 含义的做法与国民收入核算的出发点相悖,可能并不会有明显效果。

    最后可以提到一个值得深思的现象。在 GDP 全面获胜后,经济学家也逐渐成为了政府部门必不可少的“专家”。GDP 是一届政府的目标,经济学家就是帮助他们实现这个目标的人。曾经经济学家仅仅是研究社会整体其中一个方面的学者,并不承担政治任务(尽管他们都有自己的政治立场),而现在的经济学家则必须为政府部门给出政策建议。他们从民间的哲学家变成了政府部门的技术岗专家。经济学和政治合法性绑定了起来,可以说承担了中世纪教士的作用:为统治和统治阶级意识形态提供合法性。经济学作为一门社会科学,本应该像(也曾经确实像)所有其他社会科学一样,充满方法论、立场等的理论争鸣,而现在却好像只有一种经济学方法。或许也是由于经济学和政治媾和,经济学的争论直接成了对政治路线的质疑,从而也不再允许。


    注释

    [1] 一个不算秘密但被刻意忽视了的事实是,美国比中国先采用了配给制(例如粮票等),目的是暂时压抑消费,以满足军事目的开支。战后被压抑消费需求爆发也是黄金年代的一个成因。这是战争期间调配资源的可行手段。但配给制竟然成了中国计划经济历史上的最大“黑点”。而最终经济计划这一对人类社会有莫大帮助的工具却(至少是名义上)扫进了历史垃圾堆。

    [2] 我宁愿冒险宣称这是一种意识形态骗局,是一种有意造成的结果,尽管发明者(例如美国政府)已经不再能够随意地用这种“骗局”操控民众心理。因此它不是一种“阴谋”或“丑闻”,而是意识形态。

    [3] 所以我想冒险提出这样的命题:国民经济核算是以古典政治经济学和劳动价值论为基础。它只适用于物质生产的核算,强行改造只会让它变得畸形。克拉克确实是古典经济学(以配第为滥觞)的继承人,他将古典经济学的成果以符合时代精神的形式重提出来。但现在非物质的产出占比极大,但这些行业的核算或多或少都有统计上的问题。例如,服务的“生产率”意味着什么?相同服务费用下,律师打一个冗长的案子和打了多个简短的案子生产率相同吗?医生治疗一种疾病是否应该视为“产出”?金融系统承担的风险能否看作“生产”或“服务”?一旦仔细思考,就会显得 GDP 中“有水分”,好像一点也不科学。而这些难以统计的地方也给政府的操作留下了空间。

  • Komeiji_Koishi Komeiji_Koishi Post #1

    P_99HYN@GA~G9$KW0FVC5K0|690x263

    https://arxiv.org/abs/2312.10026
    密堆问题:在 d 维空间中使用单位球不重叠地铺在整个空间最多能占据多少比例的空间?近日给出了近 80 年来的首个进展,使用的技术可能在理论计算机领域也会有应用。。。论文不长,有兴趣可以阅读

  • Hypocrisy rotartsinimdA Post #1

    尊敬的社区成员们,

    我今天发帖,是为了探讨我们评课网站存在的一个重要问题,以及提出一些改善方案。近期,我注意到一个现象:很多用户只是作为信息的消费者,却很少或根本不参与到信息的贡献中来。这种单向的信息流动导致了平台数据的不全面和偏颇,影响了其作为教育资源的价值和可靠性。

    问题的核心在于:当越来越多的用户选择“伸手党”,即仅仅获取信息而不反馈或贡献自己的见解时,我们的平台就失去了它的多元性和深度。在选择课程时,新学生往往依赖于前辈的评价和建议,但如果这些评价缺乏多样性和数量,他们的选择可能就基于片面或不准确的信息。

    我深知,每个人都有自己的原因,可能是时间紧张、不知道该说些什么、或是担心自己的意见不够专业。但我想强调的是,每个人的体验都是独一无二且宝贵的。你的一条简单评价,可能就是别人做决定时的关键因素。

    为了改善这一状况,我提出以下几点建议:

    1. 简化分享流程:我们可以进一步优化平台的用户体验,使发表评价变得更加简单快捷。比如,可以增加一些快速评分的选项,降低分享门槛。
    2. 激励机制:对于那些积极贡献内容的用户,我们可以设立一些奖励机制,比如积分制度、优秀贡献者认证等,以此来表彰他们的贡献。
    3. 培养正面氛围:鼓励用户发表真实、客观、建设性的评价。我们应该尊重每个人的观点,即便是批评,也应该是为了共同进步。
    4. 举办社区活动:可以定期举办一些线上或线下的交流活动,让大家分享课程体验,增强社区的互动和凝聚力。
    5. 反馈与改进:欢迎大家对平台提出宝贵意见和建议,我们将不断改进,以满足大家的需求。

    最后,我想强调,一个优质的评课平台的建立,需要我们每个人的参与和贡献。让我们携手合作,共同创造一个更加全面、可靠、有益的学习资源平台。期待看到你们的积极参与和宝贵意见!

    谢谢大家!共建高质量评课平台:我们的责任与行动

  • ❤️ Liked post in 如何像他一样学习?
    深入交流
    anonymous293 Post #6

    本人来答。

    • 首先截图要截全啊!文章前半部分不是完整解答了怎么做了吗!!如果非要卷,就按照文章前面说的做就可以了!
    • 其次,当时是我还在卷文化课的时期,到高年级实在卷不动,每门课也就考前 0.5-1 天随便看看,毕设也是随便水水,当然成绩也就七八十的水平,但是 i don't care。
    • 第三,原文没提到但我当时做了,并觉得更重要的 alpha 是低年级提前选高年级的文化课,并把提前选课的优先级放在比卷成绩更高的位置。基于几点原因:
        1. 机会成本:学校文化课本质是背书、落后、大脑不升级,非常错误,越晚学,越错。你的时间会随着年级变高而变贵的,因为年级越高,你为了学文化课而放弃的实习、科研等的机会成本也越大。提前学可以省出很多时间,不用费事和学校请假 battle。
        1. 自身适合度:由于文化课的落后本质,你可以假设你对文化课的兴趣会随时间指数下降!年级越高越不喜欢(至少我是这样)。所以你提前选,趁着能卷的时候卷一卷,减少你高年级了摆烂了卷不动时的痛苦。
        1. 成绩:其实个人经验,提前选课反而能增加平均成绩。这是因为你的高年级同学要做更重要的事,是文化课摆烂人。你拿出低年级前 50% 的努力,放在高年级可能就进前 5% 了,自然能获得更高分数。高年级的课通常也会给分更松。不过其实只要都及格了,文化课成绩并没什么用,这也是提前选课远重要于卷成绩的原因,但低年级同学估计也听不进去。。。

    以下是原文前半部分:

    如何成为期末复习混子

    发表于 2021-02-04 | 更新于 2021-02-09

    既然在西安智慧大学,能力提升和考试高分是不相关的,考前抱佛脚就成为标准配置了。这里浅谈如何高效抱佛脚,用最小精力混过无聊的考试。

    • 理性对待,不要神化难度与复习过程,也不要神化高分的作用。**切勿浪费大量时间在期末考试上而减少对大脑升级活动的投入!**平时只需要把作业题搞懂就行
    • 期末考试不是什么高大上的东西,而只是对快速掌握简单知识能力的考察。
    • 交大几乎所有科目都是很 trivial 的,且和提升能力是正交的。重要的课如果学校教得很差的话,最好学期内自己看国外视频做 lab 然后对着本校考纲微调。如果仅成为了本校考试的做题家,即使拿到高分也相当于没有学!
    • 期末复习可以混,只要是沿着“通向期末高分的最短路”前进,就没问题。如果除了混高分,还想卷赢其他人,那么还需要注意不要有短板课(例如马原)。
    • 如果是概念密集型课,课本太厚读不动的话,中国大学 MOOC 上可能会有类似的念经课转为应付期末而生,2 倍速看念经课可以最短时间读完课本,快速断线重连。
    • 复习最后一定要落实到做题上。
  • uika_winwing uika_winwing Post #33

    Nov 2, 2023, 3:10:00 AM (Asia/Shanghai)

    cs61b proj1b 堂堂完成!这节主要是应用之前 proj1a 中编写的 deque 数据结构,简单的。

  • ❤️ Liked post in 投喂可爱马娘
    i13l
    Trainer 小栗帽的 Post #1

    赛马娘作为一个知名 ip,但交大门投放到哪都不合适,所以直接新开一楼。本楼欢迎赛马娘有关的一切,包括游戏,动画,二创,怪文书,还有爱马仕 🥰

    Reference:
    [1] 水源马娘楼

  • Kirin 左由佳子 Post #1

    IMG_20231027_014325|375x500
    为什么要水这一帖呢,因为楼主的绮罗星 distance 昨天到了

  • Urdak Urdak Post #2

    我觉得工科数学类的课是大学最好学,或者说最容易不学还能拿分的课了,因为题很多解析很多网课更多,考试很少考证明都是具体的计算,高数线代概率论运筹学都是这样 🫠

  • ❤️ Liked post in 延迟满足的骗局
    深入交流
    Ogiso_Setsuna 小木曽 雪菜 Post #1

    我们来玩一个游戏:

    扔硬币,如果扔出的是正面则重复扔硬币,直到扔出反面为止,一次游戏结束。一次游戏的奖金是根据扔硬币的次数决定的,即:
    如果第 1 次就扔出反面,奖金 2 块;
    如果第 2 次才扔出反面,奖金 4 块;
    ...
    如果第 n 次才扔出反面,奖金 2^n;

    问:你最多愿意每次花多少钱玩这个游戏?

    很显然,这个游戏的期望是

    E = 2*(1/2) + 4*(1/2)(1/2) + ... + 2^n(1/2)^n + ...
    = 1 + 1 + 1 + ...
    = ∞

    所以理论上我们花费任意有限的价格去参与游戏应该都是划算的。但是,这个结论明显与人们的直觉相悖。事实上,现实中几乎没有人愿意花费 20 以上的价格去玩这个游戏,更不用说花费任意有限的价格了。

    然而,在现实中人们精力有限、生命有限,只能进行有限次游戏。这时,使用基于“无限次”游戏假设计算出的“期望值”来进行决策,是否会存在问题呢?

    我们再仔细观察一下游戏的规则,发现无穷大的期望,来自于在时间的无穷远方,将一个高阶无穷大的奖励压缩进了一个无穷小的概率。对任何现实中的人来说,高阶无穷大和无穷大没有什么区别,因此没有人能够拿到最终的这个所谓无穷大的收益。

    这使我们不得不反思,延迟满足是否总是那么行之有效?如果把一个超级巨大的奖励放在一个非常漫长的延时之后,真的会有人实现吗?延迟满足在此时真的还有意义吗?

    我又想到了强化学习中的 Q-learning,距离当前时刻越近,所得到的 reward 越高(我没有仔细研究过 RL,不清楚是否大部分的 reward 都是这么设置的)。这看起来也很有道理:在实现一个目标的开始阶段,你得到的 reward 越高,你越可能保持在正确的道路上。而如果是越往后 reward 越高,你更有可能在开始阶段走了一条奇怪的路子摆烂,直到最后一步,虽然 reward 奇大无比,但是你因为开始偏离得太多,几乎完全不可能得到这个 reward 了。

    所以我在想,也许我们应该给自己在更近的阶段设置更多的奖励,我们才能 keep motivated,而不是把一个巨大的奖励藏在无穷远处,画饼充饥。延迟满足并不总是有效,因为人的生命与精力并不是无穷的。一味欺骗自己、麻痹自己,相信那个无穷远处的高阶无穷大奖励,恰恰是不理性的,反而容易让人堕入虚无的深渊。