nim游戏与进位制


在博弈论里最经典的题目就是nim游戏了,nim游戏是说,有若干堆石子,每次可以选择一堆石子,从这堆石子中拿走任意数量的石子,也就是至少拿走一个,最多把这堆石子全部拿走,两人轮流取,谁取走最后一个石子谁就赢,也就是无石子可取的人就输了,问是否先手必胜。
继续阅读

8 comments

信息熵

熵的概念是由德国物理学家克劳修斯于1865年所提出。熵最初是被用在热力学方面的,由热力学第二定律可以推出熵增的结论,然后熵是用来对一个系统可以达到的状态数的一个度量,能达到的状态数越多熵越大。信息熵也基本是很类似的,是香农1948年的一篇论文《A Mathematical Theory of Communication》提出了信息熵的概念,并且以后信息论也被作为一门单独的学科。
继续阅读

, , , , 7 comments

字符编码和中文乱码小叙


记得刚使用ubuntu的时候,处理各种乱码神马的都是很麻烦的事情,后来开始写一些web程序的时候,中文编码的问题还是会不断的出现,于是对于web程序员来说,字符集编码已经是十分常见的问题了,但是如果不去系统的了解下,处理问题时还是会有些棘手的,这篇文章我就打算简单的介绍下这些问题。
继续阅读

5 comments

数论的应用-RSA公钥算法


要说起RSA算法的话就不得不提欧拉这个伟大的数学家,他在数学的很多方面都有很多研究,而RSA也正是基于他在数论上的欧拉公式才建立起来的。欧拉公式稍后再说,先简单说一下公钥密钥的非对称算法的概念,平常我们用的加密算法往往都是对称的,也就是说加密密钥和解密密钥是一样的,比如凯撒密码,你把每个字母后移3位,a变成d,b变成e,这里3就是加密密钥,然后解密的时候前移3位,这时候3就是解密密钥,非对称加密顾名思义就是加密密钥和解密密钥是不同的,恩,数学就是能干很多神奇的事情啊。
继续阅读

, , 7 comments

python中文分词


相对于英文而言,中文在计算机处理方面有个必须要面对的问题就是中文分词,英文的单词都是空格间隔的,而中文的词语则不同,所以用程序解决中文分词,在很多自然语言处理方面都是首要进行的步骤。
继续阅读

, , , , 31 comments

P和NP那些事


在计算机科学里,有时间复杂度的概念,然后就有P,NP,NPC,NP-hard的概念,平常大家说的这个题是np的,只能搜了,其实是理解错了np的概念,首先要明确np并不是“不是p”的意思,p大家都清楚是指有多项式时间的算法,而np看全称是“nondeterministic polynomial time”,是说非确定多项式时间,进一步说,正如图片上说的p是属于np的,所有p问题都是np问题。
继续阅读

, 5 comments

理解OAuth


现在越来越多的网站开放api了,而且大部分都用了OAuth的认证方式,对于没接触过OAuth的人来说一开始理解起来感觉很困惑,觉得这个东西很麻烦,这篇文章就简单的从什么是OAuth为什么要有OAuthOAuth的认证流程,以及OAuth为什么要这样设计来谈一下。但是鉴于现在OAuth都已经有2.0了,但是2.0却不兼容1.0,而2.0主要依赖的是https,所以这里还是主要是来讲OAuth1.0的,确切的说是OAuth1.0a的。
继续阅读

, 2 comments