0%

在 LaTeX 中,我们可以用 \mathbb{R} 输出表示实数集合的字母 $\mathbb{R}$。这一命令来自 amsfonts 宏包。那么如果我们希望输出类似效果的阿拉伯数字或者小写字母,应该怎么办呢?

阅读全文 »

XGBoost 是陈天奇(怪)领衔开发的一套 Gradient Boost 算法实现,比如我会用到它做 LambdaMART 的实验。如果要给它一个评价,那应该是:好用、耐操。

不过,也有甜蜜的烦恼。XGBoost 在每轮迭代后,能够贴心地给出模型在数据集上的指标。比如我会关心 NDCG 指标。然而,这里列印出来的指标,会比事后用标准算法计算出来的值要高不少。

阅读全文 »

所谓字符串匹配,就是拿着一个字符串(也称为模式串),去到另一个字符串(母串)里去查找完全相同的子串的过程。显然,只要能定义相等关系,那么字符串匹配算法可以扩展到任意的序列匹配算法。因此,这会是一类用途很广的算法。

解决字符串匹配问题,最朴素的办法就是拿着模式串逐字符地沿着待匹配的串去比对,每次向前移动一个字符,直到完全匹配或者找不到匹配。显然,这个算法的复杂度是 $O(n\cdot m)$($n$ 表示母串的长度,$m$ 表示模式串的长度),是比较高的。

这里介绍的 KMP 算法,能够在 $O(n)$ 时间内完成任务,它是由 Donald Knuth/James H. Morris/Vaughan Pratt 发明的。当然,你也可以称之为「看毛片算法」——你高兴就好。

阅读全文 »

在软件工程课中,有一个经典的作业题:实现一个小学四则运算器。当然,它有不少变种,比如要求学生预先生成合规的四则运算题目。但不论如何变形,此类问题都绕不开 Dijkstra 提出的调度场算法。

阅读全文 »

今天有人在群里讲,大意是「我就喜欢 CJK,不喜欢 CTeX 宏集,不够通用」。我对此的评价是「啥也不懂,瞎搞胡搞」,然后摘了龚自珍的「病梅馆记」中的一段话作为评论。

梅以曲为美,直则无姿;以欹为美,正则无景;以疏为美,密则无态。

后有人惊奇,曰:「这么偏的中学古文,你居然还记得」。答曰:「大约因为吾与龚自珍同类也」。

阅读全文 »