摘要:
在选择安装哪一个版本的 CUDA Toolkit (工具包)之前,需要注意,待安装的 CUDA 开发工具包的版本不是越高越好。而是,首先要考虑安装 CUDA 开发工具包是否与本机的 CUDA 驱动版本兼容,即 CUDA 工具包的版本号不超过本机已安装的 CUDA 驱动版本号;其次, 还需要考虑安装 阅读全文
摘要:
MD5 的英文全名是 Message Digest algorithm 5,这种信息摘要算法是一种不可逆的加密算法。 下面介绍,在 Windows 系统下,计算 MD5 值的三种方法: 方法一、Windows 系统自带工具 certutil 命令格式为 certutil -hashfile some 阅读全文
摘要:
Python 语言使用反斜杠(\)作为转义符,对一些字符进行转义(escape),例如 "\n" "\r\n" 等。所以当 Python 字符串中如果出现反斜杠,则会自动转义其后的字符。但这会导致一个问题,就是,如果只是把反斜杠作为字符字面(liberal)意义,应该如何处理? 如果不使用 re 模 阅读全文
摘要:
对于 asterisk 符号的使用,本文分为预定义(predefined)和自定义(customized)两部分进行介绍。预定义部分,是指 Python 语言中已经预先定义好的部分,直接用就可以了;自定义,是指定制的,需要程序员自定义相应的功能。注意,这里讨论的 asterisk 符号的使用包括 * 阅读全文
摘要:
相同点 在 Python 中,eval 和 exec 都可以用来执行动态生成(dynamically generated)的代码。 两者在Python 3中的函数声明基本相同,如下所示: eval(expression[, globals[, locals]]) exec(object[, glob 阅读全文
摘要:
使用 vim 文本编辑器比较两个文件的不同,可以采用两种打开方式: 方式一,使用 vim 同时打开两个待比较的文件。 比较通用方式是采用 vim -d 选项,具体命令,如下: vim -d <file1> <file2> 在 Linux/Mac 下,还可以采用 vimdiff 封装命令, 具体如下: 阅读全文
摘要:
基本原理 在摊还分析(amortized analysis)中, 通过求数据结构的一个操作序列中的所有操作的平均执行时间, 来评价操作的代价. 摊还分析不同于平均情况分析, 它并不涉及概率, 可以保证最坏情形下每个操作的平均性能. 常用的三种技术: 聚合分析(aggregate analysis), 阅读全文
摘要:
获取 C++ 标准库主要有两种途径: 从 C++ 编译器的安装位置(Your C++ compiler installation location)和直接查看或下载网上开源代码(Online open source codes). 具体如下: C++编译器的安装位置(Your C++ compile 阅读全文
摘要:
原理 赫夫曼编码可以很有效地压缩数据: 通常可以节省20%-90%, 具体的压缩率依赖于数据的特性; 若将待压缩数据看做是字符序列, 根据每个字符的出现频率, 赫夫曼贪心算法构造出字符的最优二进制表示, 即霍夫曼编码. 二进制字符编码(binary character code, 简称编码 code 阅读全文
摘要:
本文以抛掷硬币(tossing coins)为例, 来理解大数定律(Law of Large Numbers), 并使用 Python 语言实现. 原理 大数定律, 简单来说, 就是随着抛掷硬币的次数的增多, 正面向上出现的比例(the ratio of heads)会越来越接近正面朝上的概率(th 阅读全文