0%

应该在电脑上写的,但是已经在纸上写完了…鸽了鸽了。

但是这周题挺好的,把最后一题抄上来吧。

12.

设G是每个面都是三角形的平面图,用3种颜色对它的所有结点任意着色。证明:顶点上恰好得到了这3种颜色的面的数目是偶数个。

前排提示:这道题最简单的做法是将相邻同色点缩点。


记C为顶点上恰好得到了这3种颜色的面的数目。不妨设3种颜色为RGB。只需要证,任意调整某一个点的颜色,C的奇偶性不变。若得证,则可将所有点的颜色调整至相同,此时C=0,为偶数,故任意着色后C为偶数,证毕。

对于某个点A考虑,不妨设它原来的颜色是R,我们将其调整为B。考虑A的邻居。

阅读全文 »

写的很差QAQ. 只是完成作业罢了。

21世纪初国内数字游戏负面形象的确立及变化原因

——以大众传播为线索

21世纪以来,中国的游戏产业迅猛发展,中国的游戏用户规模与市场规模跃居世界首位。游戏作为一种极为普遍的大众娱乐方式,已经融入到近半数中国人的日常生活中[1]。因此,21世纪的前二十年,中国社会不可避免地直面游戏,被驱动着认识游戏,定义游戏的地位。在21世纪初的大众传播过程中,游戏的公众形象变化很值得玩味。何威、曹书乐分析了近四十年来《人民日报》上有关游戏的图文报道,从传统媒体的角度印证了这一明显转变:

从1989-2001年间有7年未出现一篇正面报道,到近5年来负面报道占比仅有13%。而报道游戏时的框架,也由曾经的“危害青少年”、“治安管理”为主,变为了2012年后以“产业经济”、“文娱新方式”为主。[2]

在进行探究之前,清晰地界定大众传播这一新闻传播学概念是有必要的。大众传播是一种信息传播方式,利用大众媒体(如声音、文字、影像等)将信息以某种形式传递给人群[3]。大众传播与人际传播并称为人类的两种基本的传播方式,二者分别对应大范围公开、小范围私密这两种人性本身具有的传播需求[4]。根据德国心理学家与传媒学者格哈德·马利兹克的定义,大众传播须符合以下特征:透明性(受众不为人际交往范围所限)、间接性(在发送者与受众之间存在时间空间距离)、受众匿名性[5]。对其媒介效果和受众的研究取得了包括“沉默螺旋”在内的广泛研究成果。

拉斯维尔的“5W”理论为研究传播过程的结构和特性提供了具体的思考方向。近几十年对传播及传播规律的科学讨论都直接或间接地围绕这一理论做分析[6]。该理论认为,一个完整的传播过程包括五大要素:传播主体、传播内容、传播渠道、传播对象和传播效果[7]。与之相对应,拉斯维尔又提出了五种传播研究的内容和分析方法。本文在分析游戏相关信息的传播过程时,也将从以上几个方面入手考虑。

负面形象的确立

阅读全文 »

线性空间

求两个线性空间的交

借助Row Echelon Form!

先把两组基按列排在一起,然后REF的每一个非主元列给出的就是它的构成!类似于,把右下角再进行一次消元的感觉。

Idea from this.

证明线性空间相等

  • 相互包含
  • 包含且维数相等
  • 包含基

线性变换/矩阵

阅读全文 »

多元微分

区域:联通开集

凸区域上的凸函数一定是D上的连续函数。

image-20210625155259021

image-20210625155340966

对梯度的理解

Zhihu

梯度是向量场的对偶向量(V的对偶空间:V上的线性映射的集合)。

阅读全文 »

发现了一个有趣的Github仓库——WTF Python,决定有空的时候学习学习。类似的还有WTF JS

Tested on Python 3.8

Strain your brain!

Tricky equivalence

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> a = "wtf!"
>>> b = "wtf!"
>>> a is b
False # 注:为复现这个结果,需要在交互式命令行中一行行执行。若执行整个文件,则解释器会自动优化a b为同一个地址。

>>> 5 == 5.0
True
>>> hash(5) == hash(5.0)
True
>>> 5 is 5.0
False (with warning)

>>> x = 1000000
>>> x is 1000000
False (with warning)

因此,不要过度使用isis的作用是判断地址是否相同。当我们创建-销毁一个对象后,再次创建,则CPython可能会给它同样的id.

执行时机差异

1
2
3
4
5
6
array = [1, 8, 15]
g = (x for x in array if array.count(x) > 0)
array = [2, 8, 22]

>>> print(list(g))
[8]
阅读全文 »

3.23日区块链课后心血来潮,遂尝试描绘一下自己心中最理想的语言的模样:(不分先后)

  • 易书写、易阅读

    这个太关键了,个人感觉C和C++在这方面简直负分。以下列举几个我比较喜欢的点:(不分先后)

    • 函数可以返回多个值

    • 语句末尾可以不用加分号

      这样可以防止某些人把一堆语句塞到一行

    • 统一代码风格、命名风格

  • 强类型

    没啥可说的,就是你,Javascript.

    关于是否强类型检查,个人并没有特殊的倾向。我希望二者兼有。Go属于二者兼有但倾向强,Python属于二者兼有但很倾向弱,Typescript可能不错(没尝试过)。

  • 快速

    其实,说句公道话,各个编程语言只是人类与计算机沟通的桥梁。C语言和其他语言并没有什么区别,C语言的快速,很大程度上是因为C语言的编译器经过了几十年无数人的优化,有诸如尾递归消去、循环展开等优化,而这些优化思想并不是language-specific的,完全可以应用到其他语言上。

    有一个很好的例子就是,Python和Javascript相比,Javascript更加灵活,根据常理,灵活的代价是牺牲速度。但是为什么Javascript的执行速度这么快,以至于诸多服务器、客户端程序都是JS开发的?因为JS的v8解释器是Google雇佣几十个人开发十几年的产品,已经把JS这个动态语言优化到了编译成机器代码的程度。那么Python作为相对来说限制更强的语言,应该速度更快才对。但是并没有,为什么?因为Python的维护主要由一群爱好者业余时间维护。一言以蔽之,给钱,就能行。

    理论上来说,所有语言优化到极致,它们的速度几乎是一样的。for(int i=0; i<n; ++i);的速度,放在哪个语言里都应该是一样的。

    C语言进行纯计算确实快,这是因为C语言关心的事情少。但是,现在除了超频爱好者/OIer/Researcher,谁还在关心单线程的运算速度?大厂的服务器后台一个个都是Nodejs搭的。

  • 高并发

    关于这一点,我非常喜欢Go的思想:通过通信来共享内存,而不是共享内存来通信。Goroutine的设计爱了爱了。

  • 安全

    • 线程安全

    • 内存安全

      对于指针,一定要谨慎设计。空指针、野指针的隐患太大了。

      或者干脆没有指针,就像Python/JS一样,全部都是引用。变量名?就是个名字罢了。

  • 简单的面向对象支持

    前几年面向对象大火,现在已经不行了。C++的面向对象语法就是垃圾,何必要搞得这么复杂?像Python/Go 一样简洁有效不好吗?在学习这些语言的面向对象特性时,我可以清楚地感受到设计者在面向对象方面花费的心思。

一些小细节:

  • 不要有Stop the world垃圾回收机制。应用程序循环性卡顿会限制它的应用场景。Java的致命弱点就是它。Go似乎有所改善。Rust在这方面做的不错。

Update on 2021/4/28:

C和Rust可以嵌入式,Go和Python有运行时环境,因此几乎没人搞嵌入式。

Python的优点:好写

阅读全文 »