posts - 403, comments - 310, trackbacks - 0, articles - 7
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

先抄了《Linux编程白皮书》上的代码,貌似不成功;google后改了下,编译成功。
hello.c
#include <linux/kernel.h>
#include 
<linux/module.h>

MODULE_LICENSE(
"GPL");

int init_module()
{
    printk(
"Hello, world - this is the kernel speaking\n");

    
return 0;
}

void cleanup_module()
{
    printk(
"Short is the life of a kernel module\n");
}

Makefile:
obj-m := hello.o
KERNELBUILD := /lib/modules/`uname -r`/build
default:
    make -C $(KERNELBUILD) M=$(shell pwd) modules

然后
make
sudo insmod hello.ko    // 载入模块
dmesg  // 即可看到Hello, world
sudo rmmod hello // 移除模块
dmesg // 看到移除时信息


posted @ 2007-07-29 12:21 ZelluX 阅读(327) | 评论 (0)编辑 收藏

1. 设A, B为两个集合,若存在从A到B的双射函数,则称A与B是等势的,记为A≈B
N*N ≈ N的一种证明:构造双射函数 n = 2a * (2b - 1)。

2. 设A, B, C为任意的集合,则
(1) A≈A
(2) 若A≈B,则B≈A
(3) 若A≈B且B≈C,则A≈C

3. Cantor定理
(1) N不与R等势
(2) 设A为任意的集合,则A不与P(A)等势

4. 若一个集合A与某个自然数n等势,则称A是有穷集合,否则称A为无穷集合

posted @ 2007-07-28 19:20 ZelluX 阅读(361) | 评论 (0)编辑 收藏

1. 数学归纳法证明自然数的性质P:
第一,构造 S = { n | n ∈N ∧ P(n) }
第二,证明S是归纳集

2. 设A为一个集合,如果A中任何元素的元素也是A的元素,则称A为传递集。每个自然数都是传递集。
以下命题等价:
(1) A是传递集
(2) ∪A 包含于 A
(3) 对于任意的y∈A,y包含于A
(4) A包含于P(A)
(5) P(A)为传递集

3. 设A为一个集合,称从A*A到A的函数为A上的二元运算
另+: N*N -> N,且对于任意的m, n ∈N,+(<m, n>) = Am(n), 记作m + n,称+为N上的加法运算
另·: N*N -> N,且对于任意的m, n ∈N,·(<m, n>) = Mm(n),记作m·n,称·为N上的乘法运算

 

posted @ 2007-07-28 16:37 ZelluX 阅读(275) | 评论 (0)编辑 收藏

1. Peano 系统

Peano系统是满足以下公设的有序三元组<M, F, e>,其中M为一个集合,F为M到M的函数,e为首元素。5条公设为:

(1) e ∈M
(2) M在F下是封闭的
(3) e ¢ ranF (暂时只找到这个符号表示“不属于” 囧)
(4) F是单射的
(5) 如果M的子集A满足 (e属于A) 且 (A在F下是封闭的),则A=M
(5)称为极小性公设

2. 设A为一个集合,称 A∪{A} 为A的后继,记作A+, 并称求集合的后继为后继运算

3. 设A为一个集合,若A满足:
(1) Ø  ∈A,
(2) 若对于一切 a ∈A,则 a+ ∈A,
则称A是归纳集

4. 从归纳集的定义可以看出,Ø,Ø+, Ø++,... 是所有归纳集的元素,于是可以将它们定义成自然数
自然数是属于每个归纳集的集合,将Ø,Ø+, Ø++,...分别记为0, 1, 2, ...
设D={v | v是归纳集|,称∩D为全体自然数集合,记为N.
设N为自然数集合,σ: N -> N,且σ(n) = n+, 则<N, σ, Ø>是Peano系统。
这个Peano系统的第(5)条公设提出了证明自然数性质的一种方法,即数学归纳法,称此公设为数学归纳法原理

posted @ 2007-07-27 19:36 ZelluX 阅读(384) | 评论 (0)编辑 收藏

1. 考虑表达式3 + 4的语法分析树,exp( exp(number (3)), op(+), exp(number (4)) )。
还有一种更为简单的表示方法,例如将(34 - 3) * 42表示为*(-(34, 3), 42)
后者被称为抽象语法树(abstract syntax tree),它的效率更高,但是不能从中重新得到记号序列。


2. 简单的算术表达式的抽象语法树的数据类型
typedef enum {Plus, Minus, Times} OpKind;
typedef 
enum {OpKind, ConstKind} ExpKind;
typedef 
struct streenode
{
    ExpKind kind;
    OpKind op;
    
struct streenode *lchild, *rchild;
    
int val;
} STreeNode;
typedef STreeNode 
*SyntaxTree;


3. 简单算术文法的二义性解决
例如串34 - 3 * 42,可以有两种不同的分析树:
34 - 3 = 31, 31 * 42
3 * 42 = 126, 34 - 126
解决二义性的方法通常有两种,一种是设置消除二义性规则(disambiguating rule),如设置运算符的优先权;另一种是将文法限制为只能分析成单一的分析树,如将上式表示为34 - (3 * 42)。

设置运算符的优先权
定义如下的简单表达式文法:
exp -> exp addop exp | term
addop -> + | -
term -> term mulop term | factor
mulop -> *
factor -> (exp) | number
这样乘法被归在term规则下,而加减法被归在exp规则下,因此在分析树和语法树中加减法将更接近于根,由此也就接受了更低一级的优先权。
这样将算符放在不同的优先权级别中的办法是在语法说明中使用BNF的一个标准方法,成为优先级联(precedence cascade)。
接下来的问题就是如何让同级运算从左往右。
可以将表达式文法改为
exp -> exp addop term | term
addop -> + | -
term -> term mulop factor | factor
mulop -> *
factor -> (exp) | number
这样就使得加法和减法左结合,而如果写成
exp -> term addop exp | term
这样的形式,则会使得它们右结合。

4. else 悬挂的问题
简单 if 语句的文法
statement -> if-stmt | other
if-stmt -> if (exp) statement | if (exp) statement else statement
exp -> 0 | 1
考虑串 if (0) if (1) other else other
这时else other的悬挂就出现了二义性,它既可以理解为是if (0)匹配失败后的选择,也可以理解为if (0)匹配成功,if (1) 匹配失败后的结果。
消除二义性的规则是
statement -> matched-stmt | unmatched-stmt
matched-stmt -> if (exp) matched-stmt else matched-stmt | other
unmatched-stmt -> if (exp) statement | if (exp) matched-stmt else unmatched-stmt
exp -> 0|1
由这个定义,上面的串就可以分析为
if (0)  // unmatched-stmt
    if (1) other else other  // matched-stmt

另外一种解决方法就是在语法中解决这个问题。
可以要求出现else部分,或者使用一个分段关键字(bracketing keyword),例如
if (1) then
    if (0) then other
    else other
    endif
endif

posted @ 2007-07-27 11:28 ZelluX 阅读(8220) | 评论 (2)编辑 收藏

先试着用Apache2.2 + PHP,但是由于上一次删除Apache时没删干净,然后我用注册表手动删除还是有残留,结果Apache就废掉了,装也装不上,卸也卸不掉-,-
正好以前捣鼓.NET时装了IIS,就干脆用这个好了。

复制php5ts.dll和 libmysql.dll到c:\windows\system32

打开IIS配置,默认网站->属性->主目录->配置->添加/编辑应用程序扩展名映射,设置可执行文件指向php5isapi.dll文件,扩展名输入.php,选中脚本引擎和检查文件是否存在。

在IIS网站目录下新建phpinfo.php,内容为<?php phpinfo();?>

访问http://localhost/phpinfo.php ,查看是否正确。

posted @ 2007-07-26 11:27 ZelluX 阅读(291) | 评论 (0)编辑 收藏

用的是Lv6的小号,对手Lv7的神族,Luna 2Z v 5P
对方bf bn开局,我12D分矿,造气矿,提狗速,另外偷偷地在P主矿高地角落放了个基地。
对手第二次用农民来侦察我的时候,我把12条狗给他看了下,然后说
wo bao gou, bu yong zhen cha le
对方农民在我基地兜了一圈,发现我没骗他,回复曰
hao de wen xi
然后我又补了个基地,继续主矿三基地爆狗,同时偷造的基地也快好了。
一分钟后,8条小狗突然出现在对方基地。
30分钟后,主矿被拆干净。
此时这个P表现的还是挺冷静的,派狂热站高地防守,同时不断地补地堡。
可惜我在狂热堵住高地通道之前把4队狗A了上去。
接着这个P再次表现出了与他Lv7的等级不符的操作能力,守住了这一波进攻(当然和我没操作也有一定的关系)
5秒后后援的两队小狗赶到,再A一把,对方无奈退出。momo~~

posted @ 2007-07-25 21:01 ZelluX 阅读(301) | 评论 (1)编辑 收藏

问题:

有n个大小各不相同的螺帽及对应的螺钉,要求在O(nlogn)的复杂度内完成配对。螺钉之间、螺帽之间都无法直接比较大小,只能比较一颗螺帽与螺钉,判断他们之间的大小差异。

感觉和快速排序的partition差不多。

首先任选一颗螺钉与各螺帽进行比较,分成大小两组,另外得到与改螺钉相匹配的螺帽。

然后用那个螺帽再和其他螺钉比较,也分成大小两组,然后继续二分递归。

 

 

posted @ 2007-07-25 16:01 ZelluX 阅读(390) | 评论 (0)编辑 收藏

CLRS page 161
伪代码描述:
Stooge-sort(A, i, j)
if A[i] > A[j]
    then exchange A[i], A[]
if i + 1  >= j
    then return
k = (j - i + 1) / 3
Stooge-sort(A, i, j - k)
Stooge-sort(A, i + k , j)
Stooge-sort(A, i, j - k)
即先排序前2/3部分,然后是后2/3部分,最后再进行前面1/3的排序。

a. 证明算法正确性
由于是递归算法,而初始状态显然成立,因此只要证明当部分排序正确时,整体也能够被正确排序:
第一次排序后,第二部分每个数都不小于第一部分的所有数;
第二次排序后,第二部分某些数被交换到第三部分中,此时第三部分数都不小于第二部分和第一部分的数,但是第二部分的数并不一定都小于第一部分的(因为可能包含第三部分的数,而这些数与第一部分数的大小关系无法确认);
第三次排序后,第二部分的数都不小于第一部分的数。
这样,第一部分的任意数<=第二部分的任意数<=第三部分的任意数
而且各部分的数都已排序,因此整体已被排序。

b. 复杂度分析
递归式
T(n) = 3T(2n/3) + 1
由Master Theorem

T(n) = O(n^log(3/2, 3))

posted @ 2007-07-25 14:13 ZelluX 阅读(679) | 评论 (0)编辑 收藏

各符号的定义与上文中最近处的定义相同。
1. 设R属于A*A,若R是自反的、反对称的和传递的,则称R是A上的偏序关系。 partial order
2. 称一个非空集合A及其A上的一个偏序关系<=组成的有序二元组(a, <=)为一个偏序集。partially ordered set, or simply poset.
3. 若(A, <=)为一个偏序集,若对于一切x,y属于A,如果x<=y或者y<=x成立,则称x与y是可比的。
4. 若x与y是可比的,且x<y(即x<=y且x!=y),但不存在z属于A,使得x<z<y,则称y覆盖x。
5. 哈斯图作法: Hasse diagram
(1) 省去关系图中每个顶点处的环。
(2) 若y覆盖x,则将代表y的顶点放在代表x的顶点之上,并连线,省去有向边的箭头。
6. 若对于一切x,y属于A,x与y均可比,则称<=为A上的全序关系,或线性关系。linear order
7. 若R是反自反的和传递的,则称R为A上的拟序关系,常将R记作<。
8. 最大元 最小元 极大元 极小元 上界 下界 最小上界 最大下界
其实这些词的区别和高数中的很相近,“最”针对自身集合的所有元素,“极”针对自身集合的部分元素,“界”指有一个更大的包含自身集合的参照系下的情况。
9. 线性关系中由于任何两个元素均可比,因此哈斯图中就可以表示为一条直线,从而容易理解线性的由来。又称为链,元素个数称为链的长度。
10. 良序关系:拟全序集(A, <)中任何非空子集均有最小元。

posted @ 2007-07-25 12:26 ZelluX 阅读(541) | 评论 (0)编辑 收藏

仅列出标题
共39页: First 上一页 18 19 20 21 22 23 24 25 26 下一页 Last