Content Preview: rss
13 days ago
Maximum number of users for Signal_Toolbox reached. Try again later. Maximum number of users for Statistics_Toolbox reached. Try again later.
17 days ago
不知不觉的,又到了该写日志的时候。这个星期写些什么呢?让我想一想啊。。。想来又想去,想到了CANOEE上周来访密歇根。密歇根人民可开心了,很久没有这么开心过了。后来,他回去了,一切又都恢复了平静,就跟以前一样一样的。在CANOEE临走前,给我看了一个人写的几篇文章,文风很是新颖,看得我很是受启发,觉得原来日志也可以这样写啊,要是能早点见识到那该多好啊。于是呢,这个周末,天气这样好,我就仿效此文风,写下了上述的一段话。 ======================华丽的分割线=========================== 皑皑,以后要一直这么写东西,从此也不用再世上混了。。。 所以说,发PAPER一定要认真严谨准确,一不小心有失水准就别想翻身了。 此外,人人都有把代码弄乱的潜质,人人也都有把文章写恶心的潜质。 关于如何弄乱代码,请移步: 6个变态的C语言Hello World程序: http://coolshell.cn/?p=914 如何加密/混乱C源代码: http://coolshell.cn/?p=933 大家领会精神,适可而止。
21 days ago
Quote [转] P问题、NP问题、NPC问题、NP-Hard问题 这或许是众多OIer最大的误区之一。 你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实 都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行”的问题,NPC问题才是。好,行了,基本上这个误解已 经被澄清了。下面的内容都是在讲什么是P问题,什么是NP问题,什么是NPC问题,你如果不是很感兴趣就可以不看了。接下来你可以看到,把NP问题当成是 NPC问题是一个多大的错误。 还是先用几句话简单说明一下时间复杂度。时间复杂度并不是表示一个程序解决问题需要花多少时间,而是当问题规模扩大后,程序需要的时间长度增长得有多快。 也就是说,对于高速处理数据的计算机来说,处理某一个特定数据的效率不能衡量一个程序的好坏,而应该看当这个数据的规模变大到数百倍后,程序运行时间是否 还是一样,或者也跟着慢了数百倍,或者变慢了数万倍。不管数据有多大,程序处理花的时间始终是那么多的,我们就说这个程序很好,具有O(1)的时间复杂 度,也称常数级复杂度;数据规模变得有多大,花的时间也跟着变得有多长,这个程序的时间复杂度就是O(n),比如找n个数中的最大值;而像冒泡排序、插入 排序等,数据扩大2倍,时间变慢4倍的,属于O(n^2)的复杂度。还有一些穷举类的算法,所需时间长度成几何阶数上涨,这就是O(a^n)的指数级复杂 度,甚至O(n!)的阶乘级复杂度。不会存在O(2*n^2)的复杂度,因为前面的那个“2”是系数,根本不会影响到整个程序的时间增长。同样地,O (n^3+n^2)的复杂度也就是O(n^3)的复杂度。因此,我们会说,一个O(0.01*n^3)的程序的效率比O(100*n^2)的效率低,尽管 在n很小的时候,前者优于后者,但后者时间随数据规模增长得慢,最终O(n^3)的复杂度将远远超过O(n^2)。我们也说,O(n^100)的复杂度小 于O(1.01^n)的复杂度。 容易看出,前面的几类复杂度被分为两种级别,其中后者的复杂度无论如何都远远大于前者:一种是O(1),O(log(n)),O(n^a)等,我们把它叫 ...



