楔子 上次折腾博客还是醉心于binary security的时节,如今却是弃之如敝履。彼时彼刻,正如此时此刻,何移之速也! 互联网变化之快让人越来越浮躁,工作越久、越难以静下心来去专研某个领域的知识,不学无术就愈发膨胀,一点点丧失核心竞争力,最后与前沿脱轨,熬成药渣,泄入深渊。 我不知道一个人应该如何消化掉鸡飞蛋打、毫无成就的日常工作的挫败感和996福报带来的身心俱疲,只是入行这么多年,的的确确是弄丢了 2022-05-01 杂感
C++黑魔法系列之static-reflect牛刀小试(上篇) 近日有位道友发了我个基于C++14的静态反射库reflect-hpp,表示奇技淫巧完全看不懂,丢给我想让我锐评一下。我一看,好家伙,这不是小彭老师的屠龙宝术嘛,我哪敢吱声,学吧,学无止境。。。 2024-07-20 源码剖析 #cpp #cpp-templates
线性代数笔记(二十八)——正定矩阵和最小值 本节回归到实数域,重点讨论了正定矩阵这一主题,将之前所掌握的主元、行列式、特征值等知识联系起来,通过正定矩阵引出函数与矩阵之间的关系,介绍如何找到函数的最小值,并给出几何解释。 2024-03-09 线性代数 #MIT-18.06-linear_algebra
线性代数笔记(二十七)——复数矩阵与FFT 这一节延展到复数矩阵,介绍复数矩阵的运算特征,并介绍一个重要的复数矩阵:傅里叶矩阵。此外,还着重介绍了一种快速计算傅里叶变换的方法:快速傅里叶变换(FFT),它显著地降低了运算量。 2024-03-09 线性代数 #MIT-18.06-linear_algebra
C++黑魔法系列之从optional到expected 众所周知,想要在C++中写出通用的框架、组件代码并不简单,一来C++本身庞然大物包罗万象,大部分开发者并不了解像是”茴有四种写法“这种语言律师津津乐道的课题,对于晦涩难懂的模板元更是谈之色变,二来是历史悠久,在发展过程中为了向前兼容,遗留了各种特例特办的技术债,导致系统臃肿不堪。因此,尽管C++生态相当茂盛,但权威的第三方库却屈指可数(甚至其标准库都是风风雨雨缝缝补补,偷得人家boost就剩个底裤 2024-02-01 源码剖析 #cpp #cpp-templates
C++黑魔法系列之ScopeGuard源码剖析 众所周知,想要在C++中写出通用的框架、组件代码并不简单,一来C++本身庞然大物包罗万象,大部分开发者并不了解像是”茴有四种写法“这种语言律师津津乐道的课题,对于晦涩难懂的模板元更是谈之色变,二来是历史悠久,在发展过程中为了向前兼容,遗留了各种特例特办的技术债,导致系统臃肿不堪。因此,尽管C++生态相当茂盛,但权威的第三方库却屈指可数(甚至其标准库都是风风雨雨缝缝补补,偷得人家boost就剩个底裤 2023-12-01 源码剖析 #cpp #cpp-templates
还在嘴硬?Trie树没你想得那么简单 Trie树,又称前缀树或字典树,在数据结构领域赫赫有名。相信多数人认识Trie的机缘,要么是通过OI,要么是在工作中遇到过Trie发光发热的场景。传统Trie结构并不复杂,但其实现与变种却是八仙过海各显神通。本文从Trie讲起,紧紧抓住核心的性能与空间占用,对Trie主流的几种实现进行了阐述,同时自己也真实地跑一遍benchmark,对各家吹逼的论文去伪存真。 2023-11-01 数据结构与算法 #data-structures #algorithm #Trie
线性代数笔记(二十六)——对称矩阵与正定性 这一节对对称矩阵下手,分解成特征值和特征向量的对角化,研究对称矩阵的性质,引出正定性。 2023-10-27 线性代数 #MIT-18.06-linear_algebra
线性代数笔记(二十四)——马尔科夫矩阵,傅里叶级数 本讲是第二部分的最后一讲,主要围绕马尔科夫矩阵和傅里叶级数,讲述了矩阵的对角化特征分解在其中发挥的作用。这两个案例只是做了浅显的介绍,重点是理解特征值与特征向量在其中扮演的角色以及其中千丝万缕的关联。 2023-10-13 线性代数 #MIT-18.06-linear_algebra
线性代数笔记(二十三)——微分方程 一阶线性常微分方程可以通过矩阵的特征分解来求解,将微分方程抽象成矩阵,类似于上一讲差分方程的\(u_k=A^ku_0\),分解出对应系数而得到围绕\(e^{Ax}\)的通解。 2023-10-11 线性代数 #MIT-18.06-linear_algebra