Apr 15

最先是在白云黄鹤上看到这篇文章的转载,觉得挺有意思的。。。
原文好像是出自
蜻蜓点水 举重若轻

一起来欣赏,品味。。。

第一章、世 界的形成


太初, 只是一片混沌。大师图灵沉睡在这片漫无边际的黑暗中。先知书《编程之道》说, 有一天, 大师梦见自己变成了一台机器, 浑然不知是机器梦见了自己还是自己梦见了机器。他醒来, 天地就分开了。无数巨大的计算机从天而降, 秩序由此建立。

又 过了一千年, 第一批人类从原始的混沌之梦中醒来。没有人知道大师的去处, 他们好奇地围绕在那些巨大的机器周围, 他们相信这些机器是世界秩序的源泉并奉之为神明。太古的机器也许诺给他们无穷的力量, 帮助他们把世界变得更为繁荣。

Apr 1

Romberge算法是什么,其实是一种求数值积分的方法。就是先不断二分用递推梯形公式求出Tn,再通过Tn,T2n的线性组合求出复化Simpon积分Sn,再通过Sn,S2n的线性组合求出Cotes积分值,这样一步步往下算,它是一种加速算法。过程像下面这样:

                                                                                   T1 
                                                                                   T2    S1
                                                                                   T4    S2    C1
                                                                                   T8    S4    C2    R1
                                                                                   T16  S8    C4    R2   ....
 
下面是用C语言实现的代码:

Mar 24

      最近突然冒出一个想法:怎样写一个程序,它可以输出自己的源代码?

      我们都写过这个程序:

#include<stdio.h>
main() { printf("Hello, world");}

      它会输出:

Hello, world

      于是很自然地,要写出一个输出自己的程序,可以尝试这样写:

#include<stdio.h>
main() { printf("#include<stdio.h>\nmain() { printf(\"#include<stdio.h>\n main() { ...\") } ");}

      它会输出:

#include<stdio.h>
main() { printf("#include<stdio.h>
main() { ..."
) }

      你可以继续这样写下去,但你会发现自己已经陷入死循环了,写到printf那就得返回去加上一段。显然像上面这样是做不到的。是不是说这样的程序就不存在呢?答案是否定的,不仅写得出来,而且各种各样,五花八门的都有。

Mar 17

qsort包含在<stdlib.h>头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数。

函数原型:

void qsort (void  *base,size_t num,size_t size , int (* comparator)(const void * , const void  *));

用法以及参数说明:

Base数组起始地址
num数组元素个数
size每一个元素的大小
comparator函数指针,指向比较函数
1比较函数要接受两个参数,一般要转换成要比较数据的类型;
2比较函数的返回值要反映两个参数是大于,等于还是小于的关系,分别用一个正数,0和一个负数表示。
在比较函数中以第一个参数和第二个参数比较则是从小到大排序。反过来则是从大到小排序。看下面的例子:

对int类型数组排序
int num[100];

int cmp ( const void *a , const void *b )
{
return *(int *)a - *(int *)b;
}

qsort(num,100,sizeof(num[0]),cmp);

Feb 14

引自:程序人生 下载

现在的计算机专业学生怎么这个样?

荒废掉的专业课
 
现在的学生,本末倒置的厉害。什么时髦玩什么,把那些本该学好的只是反而放到一边。整天弄什么Linux(因为大家都在弄),安装来安装去的乐此不疲(到了毕业就算是精通Unix了,可以在简历里面写一笔的)而且专对界面,软件的使用什么的感兴趣,比如驱动个声卡,配置个Xwindows,折腾个没完,可以说是取其糟粕,弃其精华.如果你真的问问他们一些企业应用的东西,也就是能说出个Apache之类就不错了,你问下去,对与错还没准儿呢。很多学生找工作,都会把学校的成绩在简历上大肆的吹嘘--千万别信他们!我也从学校里出来的,对这个还是比较了解的。我那天面试了一个北京某著名理科高校的计算机研究生,我看到简历里说到他是其中一门课(关于中间件的课程)的助教,偶问他:能否对业界知名的中间件加以归类?用什么标准无所谓。支支吾吾半天连主要的产品都说不全。就这样,在简历里还吹嘘得很厉害,什么某公司的顾问了,什么公司的技术总监了,胡扯!
这首先是学校的责任。真不知道那些教授讲课的时候都说得什么?传道授业解惑,哪一点做到了呢?