Site Overlay

关于

欢迎来访——这里是 Pluveto 在浩瀚海洋中的一片自留地。

格言

实际上,没有一个人是纯粹的单体,连最天真幼稚的人也不是,每个“我”都是一个非常复杂的世界,一个小小的星空,是由无数杂乱无章的形式、阶段和状况、遗传性和可能性组成的混沌王国。

赫尔曼·黑塞《荒原狼》

文章

论意义

下课了,前面的人,有的扑在桌面上休息,有的戳着手机,而我在观察他们,因为不知道还能干什么。玩手机吗?可我对手机游戏、资讯或视频失去了兴趣,只觉它们过度地折磨我的神经。背单词,浏览记忆卡片吗?可我已经不想动脑了。 曾几何时还希望着吸收知识,然后探究意识从物质活动中产生的奥秘,或是用学过的语言去涉足国外的文化杰作。如今却觉得活着十分劳苦。不是因为所做之事本身的艰难,而是因为对一切物质失去了兴趣,以至于[ 阅读全文 ]论意义

《复活》书摘

托尔斯泰的《复活》讲述的,是聂赫留朵夫和玛斯洛娃两个人的堕落和和重生。托尔斯泰也利用这个故事,抨击了沙皇俄国国家统治的腐朽堕落。对社会犯罪的罪犯,也同时是被社会犯罪的无辜者;而既得利益阶级,才是对人民犯下最大罪行者;罪恶的制度,又催生更多的犯罪……正是这样的反思和揭露,催生了罗斯后来的资产阶级革命和无产阶级革命,也使得这部作品成为人们心中的经典。 遗憾的是,书中所揭露的一切不幸,在二十一世纪的今天[ 阅读全文 ]《复活》书摘

原地 $\pi/2$ 旋转图像算法

我对旋转 $\pi/2$ 的第一反应就是乘以虚数单位 $i$。高中的时候学过,乘以 $i$ 相当于矢量顺时针旋转 $90^\circ$: $$ (x, y) \to (-y, x) $$ 这个公式表明了旋转的坐标变化。不过,由于是在程序实现,会出现覆盖目标点的情况。所以,可以先临时保存当前点,然后用前一个点覆盖当前点,如此往复,直到用当前点覆盖后一个点。这样的话,针对一个象限里的点进行旋转就行了:[ 阅读全文 ]原地 $\pi/2$ 旋转图像算法

二维数组的取模技巧 & 用位图代替哈希表的碰撞检测

问题说明 有六个九宫格的大柜子,大柜子编号 0~5,大柜子的格子(以黑色为单元格)编号 0~8。如下图堆放在一起。现在请给出一个公式,输入柜号 $m$、格号 $n$,输出格子所在的行列位置 $(i, j)$。$m,n,i,j$ 从 $0$ 计数。 这个公式应该怎么推导呢? 首先,以 $m = 4$ 号柜,也就是中下方的红色柜为例,取格号 $n = 6$,也即左下角的小黑格。 对格号 $n$ 模以 [ 阅读全文 ]二维数组的取模技巧 & 用位图代替哈希表的碰撞检测

算法入门笔记:1. 预备知识

目录 模板函数(template function)引用传参(pass by ref)常量引用(const ref)引用返回递归函数异常处理动态内存分配分配释放类运算符重载自定义异常友元模板函数(template function) C++ 的模板是通过编译时懒加载生成类/函数实现的。 使用范例: template<class T> T Abc(T a, T b, T c){ retu[ 阅读全文 ]算法入门笔记:1. 预备知识

递归求子集算法 通俗解释

目录 说明原理分析参数分析与伪代码表述编程语言表述说明 我目前初学算法,所以语言上应该会比算法大佬们通俗很多。考虑到方便性,我使用的伪代码为基于 php 加上一些自然语言处理的代码,可以比直接写 C++ 代码更容易理解。文章末尾会附上我的 C++ 代码。 原理分析 首先看原理。 现有集合 set = [1, 2, 3] 。设有一个空集 setToAppend = [] 。 挑出 set[0] = [ 阅读全文 ]递归求子集算法 通俗解释