异常检测

一般的异常检测问题为:对于给定的一系列样本,给出一个新的测试样本,判断该测试样本是否属于这系列已知样本/该样本是否异常样本。

例如:对于一批正常的引擎,监测带有一系列的数据(散热,震动强度),对于一个新的引擎,测得相关的数据,判断其是否异常引擎。

……

春秋古筮法

第一次接触春秋古筮法是在大二上名为中国术数文化的公选课上。当时因为需要按类别选课,不得不选择中国与全国类别的公选课,恰好一直以来都对玄学有着谜之兴趣,就选了这门公选课。当时十几周的课程,现在我的印象就剩下春秋古筮法了,最终也能叫有所收获?

到了寒假,不知为什么又重新想到了春秋古筮法,然而大体以及忘记了,在重新复习了相关的方法后,为了不至于忘却,我萌生了开发一个春秋古筮法占卜的应用,然后在这个学期里大概花了两个星期的时间,上线了 WEB 版本,点此可体验(因为服务器没有备案,所以暂且不能直接上 80 端口)。在基本完成之后的现在,打算写点东西记录一下。

……

CCF 201903

最后一次的认证,事前准备了差不多一个月,都觉得没什么问题了,考的时候还做出了四道题,觉得三百分是稳的。然后一查成绩,居然比第一次基本没怎么准备还低(第一次 270),不甘心,又无奈。 于是等到网上出了题后,把当时提交的题重新做一遍,提交一遍,重新看看问题在哪,写一写题解。也不是想要证明什么,只是觉得努力……

循环体中局部变量的小坑

前几晚看《The Go Progromming Language》时,在 匿名函数 的最后一小节中,发现了一个比较有趣的小坑。 大概的场景为:首先创建一些目录,然后对于每一个目录,分别声明一个匿名函数删除目录,样例代码如下:

1
2
3
4
5
6
7
var rmdirs []func()
for _, dir := range tempDirs() {
    os.MkdirAll(dir, 0755)
    rmdirs = append(rmdirs, func() {
        os.RemoveAll(dir) 
    })
}

大家可以先自行考虑一下,有没有什么问题,效果会是怎样

……

图论常见题目及算法

背景

近来都在刷 CCF 的题,准备认证考试。最近几天开始刷其中的第四题,一般而言,CCF 的第四题都是图论题。对于我这样之前没怎么刷题的人来说,图论题看上去就感觉很难,主要是感觉到很陌生,因为在实际的开发过程中比较少用到图这样的数据结构,都是线性的数据结构,连树都比较少用。

但是在刷得比较多的图论题后,发现其实图论题好像也就那么回事,也不是说简单,主要感觉来来去去都是考那几个东西,如果是没有接触过或者不会做的话,可能有点难,但是只要接触过相似的,直接套板子修改就行了(当然也有可能是我还接触的不够多 XD),另外,就是感觉没有什么题是 DFS/BFS 不能破,只是会不会超时,能拿多少的分的问题(对于 CCF 认证只想拿 300 分而言,有几十分就够了),其实很多算法的核心也就是 DFS 与 BFS。

所以在今晚刷完了 CCF 往年所有的第四题后,总结一下最近接触的图论问题及解法。

……

CCF201503-4 网络延时

Problem

问题描述

  给定一个公司的网络,由 n 台交换机和 m 台终端电脑组成,交换机与交换机、交换机与电脑之间使用网络连接。交换机按层级设置,编号为 1 的交换机为根交换机,层级为 1。其他的交换机都连接到一台比自己上一层的交换机上,其层级为对应交换机的层级加 1。所有的终端电脑都直接连接到交换机上。
  当信息在电脑、交换机之间传递时,每一步只能通过自己传递到自己所连接的另一台电脑或交换机。请问,电脑与电脑之间传递消息、或者电脑与交换机之间传递消息、或者交换机与交换机之间传递消息最多需要多少步。

……

CCF201612-4 压缩编码

Problem

问题描述

  给定一段文字,已知单词a1, a2, …, an出现的频率分别t1, t2, …, tn。可以用01串给这些单词编码,即将每个单词与一个01串对应,使得任何一个单词的编码(对应的01串)不是另一个单词编码的前缀,这种编码称为前缀码。
  使用前缀码编码一段文字是指将这段文字中的每个单词依次对应到其编码。一段文字经过前缀编码后的长度为:
  L=a1 的编码长度 ×t1+a2 的编码长度 ×t2+…+ an 的编码长度×tn
  定义一个前缀编码为字典序编码,指对于1 ≤ i < nai的编码(对应的01串)的字典序在ai+1编码之前,即 a1, a2, …, an 的编码是按字典序升序排列的。
  例如,文字E A E C D E B C C E C B D B E中, 5个单词A、B、C、D、E出现的频率分别为1, 3, 4, 2, 5,则一种可行的编码方案是A:000, B:001, C:01, D:10, E:11,对应的编码后的01串为1100011011011001010111010011000111,对应的长度 L 为 3×1+3×3+2×4+2×2+2×5=34。
  在这个例子中,如果使用哈夫曼(Huffman)编码,对应的编码方案是A:000, B:01, C:10, D:001, E:11,虽然最终文字编码后的总长度只有33,但是这个编码不满足字典序编码的性质,比如C的编码的字典序不在D的编码之前。
  在这个例子中,有些人可能会想的另一个字典序编码是A:000, B:001, C:010, D:011, E:1,编码后的文字长度为35。
  请找出一个字典序编码,使得文字经过编码后的长度L最小。在输出时,你只需要输出最小的长度L,而不需要输出具体的方案。在上面的例子中,最小的长度L为34。

……

CCF201412-3 集合竞价

Problem 问题描述 某股票交易所请你编写一个程序,根据开盘前客户提交的订单来确定某特定股票的开盘价和开盘成交量。 该程序的输入由很多行构成,每一行为一条记录,记录可能有以下几种: buy p s 表示一个购买股票的买单,每手出价为p,购买股数为s。 sell p s 表示一个出售股票的卖单,每手出价为p,出售股数为s。 cancel i表示撤销第i行……

Wildcard Matching

Problem

Given an input string (s) and a pattern (p), implement wildcard pattern matching with support for '?'and '*'.

'?' Matches any single character.
'*' Matches any sequence of characters (including the empty sequence).

The matching should cover the entire input string (not partial).

……

CCF201604-2 俄罗斯方块

Problem 问题描述 俄罗斯方块是俄罗斯人阿列克谢·帕基特诺夫发明的一款休闲游戏。 游戏在一个15行10列的方格图上进行,方格图上的每一个格子可能已经放置了方块,或者没有放置方块。每一轮,都会有一个新的由4个小方块组成的板块从方格图的上方落下,玩家可以操作板块左右移动放到合适的位置,当板块中某一个方块的下边缘与方……

Mysql忘了root密码怎么办

引言

在准备做Windows程序设计的大作业时,需要用到 Mysql。打开了 Mysql WorkBench 连接本地数据库时,提示要输入 root 密码,试了几个常用密码无果后,发现自己再次忘记了 Mysql 的 root 密码。但是没有关系,本人已经习惯忘记各种不太常用的账号密码了,驾轻就熟地打开百度搜索相关方法,却发现来来去去都是那同一个方法,而且还因为版本问题与实际情况有些差异,最终还是花费了不少的时间,有点难受,遂写一文记录一下。

……

Maximum Product of Word Lengths

Problem

Given a string array words, find the maximum value of length(words[i]) * length(words[j]) where the two words do not share common letters. You may assume that each word will contain only lower case letters. If no such two words exist, return 0.

Example 1:

Input: ["abcw","baz","foo","bar","xtfn","abcdef"]
Output: 16 
Explanation: The two words can be "abcw", "xtfn".
……

Linux 文件系统中操作文件导致 NTFS 文件系统中文件丢失

背景

在上周的时候,打算在 Ubuntu 下查看在 Windows 下 QQ 接受到的项目代码,然后顺便就整理了一下目录,新建了一个文件夹,将实验室相关的文件剪切复制到该文件夹。后切换回 Windows,发现文件夹没有建成功,而刚才剪切的文件不见了。

无独有偶,本周一上课纪录模式识别笔记时,顺手归档了一下这门课文件夹下的作业,课件,笔记(在 Windows 下的 Ntfs 分区中),然后周二上课打开 Windows 系统后,发现文件丢失,新建的归档文件夹也不见了,然后昨天修改的 markdown 笔记也损坏无法打开。

……

我为什么要开这个博客

正文

心心念念很久的博客终于开通了,距离产生这个想法的大一下学期,已经过去一年半了。在这段时间当中虽然也有过不少的努力和尝试进行博客这个想法的实现,甚至还在大一下学期期末的时候还真的跟着某篇博客用Django倒腾出了一个算是能够用的博客,还部署到了服务器上,上了域名,然而最后死于没有文章产出,真的惭愧。

……