老实说关于计算机专业方面的体会大概有很多了。网上比较有名的大概有这么几篇
胡侃学习(理论)计算机 http://www.tinydust.net/prog/diary/2009/07/sir_29.html
我的大学十年(林锐) http://tech.cuit.edu.cn/forum/thread-123-1-1.html
以前我也写过一篇,写在大学边上…,时隔三年,我又写下了这篇文章,其实三年前我就知道我会写这样一篇文章。三年后,当然某些认识已经发生改变,有些也依然未变。其间很多时候我都在考虑一个问题,大学到底是什么呢?在这有限的时间里该把自己培养成什么样的人呢?我们的教育缺少的是什么呢?实际上这样的一些问题和观点,我也曾经在bbs的某些帖子中透露过。在思考的过程中,我也开始查阅一些国外大学计算机专业的课程设置,培养方案,希望从中可以得到一些启发,也在阅读一些文章,对其中的思考有所接受和借鉴。
1.话说scalapck还是可以运行在异构平台上的,虽然效率目前未知,但是设计时有考虑这个异构的问题,证据如下
http://netlib.org/scalapack/scalapack_install.pdf 其中的2.4 Run the PBLAS Test Suite
Testing instructions with MPICH on a network of workstations
Then, to run the executable, you will use the command mpirun. For example,
mpirun -np <number of processes> <executable>
where <executable> is replaced by xspblas1tst, and so on. If the network of work-
stations is heterogeneous, you will need to specify the -p4pg option and supply a text file
containing the names of the machines and the locations of the executables to which you will
spawn tasks. Refer to the mpirun manpage for complete details.
LAPACK:内含BLAS
错误:
spstrf.f: In subroutine `spstrf’:
spstrf.f:102: warning:
INTRINSIC MAX, MIN, SQRT, MAXLOC
^
Reference to unimplemented intrinsic `MAXLOC’ at (^) (assumed EXTERNAL)
spstrf.f:102:
INTRINSIC MAX, MIN, SQRT, MAXLOC
^
Invalid declaration of or reference to symbol `maxloc’ at (^) [initially seen at (^)]
spstrf.f:204:
ITEMP = MAXLOC( WORK( (N+J):(2*N) ), 1 )
1 2
Invalid token at (2) in expression or subexpression at (1)
spstrf.f:291:
ITEMP = MAXLOC( WORK( (N+J):(2*N) ), 1 )
1 2
Invalid token at (2) in expression or subexpression at (1)
花木兰-北魏 魏灵太后-北魏 冯小怜-北齐 千金公主-北周
花木兰-北魏
花木兰的故事流传广远,一千多年以来有口皆碑,但对于她的姓氏、里居、出生年代,仍然传说纷坛,莫衷一是。 明代徐渭在《四声猿传奇》中说她是姓花,名木兰,父亲花弧是一个后备役军官,大姐花木莲,幼弟花雄,母亲姓袁,一家五口,这是至今仍为大家所接受的一种说法。
问题:
写了这么一个程序来测试longjmp对于变量值的影响
按照书上说的,声明为volatile的变量的值应该不变(那句话本身就有点歧义,我也不知道是不是这么理解,所以写了这么一个程序),而一般int的值则是未定义的,大家解释一下我的程序输出吧,说说volatile到底是什么语义?
#include <unistd.h>
#include <setjmp.h>
#include <sys/types.h>
问题
是这样的:每次只交换相邻的两个数 如何在n!次交换中找到所有的排列。
问题可能有些问题,n!-1次交换更合适,当然说n!也可以,但是不要把第一个开始元素算在呢。看到这个问题时大概想到了两个思路,一个根据排列之间的相邻关系,组成一个图,证明这个图中存在一个汉密尔顿路。另一个则是采用递归的思路,首先我假设可以利用相邻交换求出n-1个元素的全排列,然后看怎样利用这n-1,求出n个元素的全排列。
转载请注明作者:phylips@bmy 出处:http://duanple.blog.163.com/blog/static/70971767200962612232282/
内存对齐
结构体的内存布局依赖于CPU、操作系统、编译器及编译时的对齐选项。结构体内部成员的对齐要求,结构体本身的对齐要求。最重要的有三点
bbs上写了下,直接z过来。在这之前,先提两篇文章
对于一个人的成长,因素大概有两个,个人和环境,从环境上来看se相对务实一些,做的项目可能多一些。个人的因素是最重要的,环境则是次要的,回过头来再看,开始发现se课程中也存在一些不足,当然相比较而言有一定的先进性,这类似于瘸子里拔将军下产生的一个结果。
prototype,可以看到大部分模式都是通过在类构造时传递那些不同的变量,之后使用时由于这些对象变量具有相同的接口,就可以封装它们。原型模式也是如此,一个原型工厂,通常在它构造时得到那些对象原型,然后之后在构造新对象时,只需要调用那些对象原型的clone函数就可以了。所以变的因素在,原型工厂构造时刻体现。其他地方则被封装了。
http://zh.wikipedia.org/w/index.php?title=生成器_(设计模式)&variant=zh-cn
生成器模式:
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。允许创建对象的算法独立于该对象的组成部分以及装配方式。允许被构造的对象有不同的表示。
工厂方法模式,单件模式与抽象工厂模式。
虽然抽象工厂模式中,也有工厂,但这里的工厂一般产生的一族不同的对象。而工厂模式则是为产生一族对象,这些对象它们通常具有相同的基类接口。实际上,抽象工厂是在工厂级别上进行了抽象,而工厂模式则是在类创建的级别上进行了抽象。它们之间也是相互联系的,比如抽象工厂中的工厂类一般采用单件模式实现,而工厂方法用可以用来产生抽象工厂里不同的工厂类。
或许我们的心中都有那样的一个江湖梦,骑马挎刀走天下,仔细想想古龙的书倒比较符合我心中的江湖,怀着一颗流浪的心,纵马江湖,快意恩仇,也是不错的人生。于烟花酒榭中流连,在风发雪夜中孤行,逐着残阳远山而去。每每产生这样的梦境,我想我该是一个喜欢江湖的人。
注释
1.#
类型系统
2.字符串,使用” "与 ‘ ‘不同,"$var"内的变量仍然会被替换,’$var’则不会
3.变量,也不需要提前声明,直接=,变量类型只是文本字符,系统不会自动辨认为数字。变量作用域:与普通的高级语言不同,函数中声明的变量是全局变量。如果要声明局部变量要使用关键字local
注释
1.#
类型系统
2.字符串,使用”括起来,最后一个字符索引为-1
3.变量,不需要声明,直接使用,根据初次赋值时的值决定类型
4.列表与元组,类似与数组,列表用[]代替{},元组则用(),它们都可以放异类变量,但元组只读
5.字典用{}初始化,{a:b,c:d}
刚刚过去的两个小时(6月5日下午5时35分至7时20分)相信是交大师生员工最激动和最难忘的时刻,从四大发明广场到图书馆,从梧桐道到康桥苑,如涛如潮的西安交大校园响彻一句话:总理好!
人民的好总理,时刻惦记着师生们,惦记着即将走向社会的毕业生们,冒着酷暑专程来到西安交通大学看望大家。他轻车简从,下午四点下飞机,视察了一处地方后就直接赶来学校。王建华书记、郑南宁校长,也是4时许才得到确切的讯息。然而,心有灵犀一点通,温总理即将莅临的喜讯有如春风拂面,在校园不胫而走,交大人顷刻间从四面八方涌向钱学森图书馆前四大发明广场,亲眼看一看我们的总理,向发自肺腑衷心爱戴的总理问好!
转载请注明作者:phylips@bmy 出处:http://duanple.blog.163.com/blog/static/70971767200953105952749/
对于字符串处理,常用的有这么几个工具,kmp,trie树,trie图,后缀树,后缀数组,正则表达式,DFA,NFA。下面就这些算法,数据结果及模型进行下简要的说明,并研究下它们之间的联系。
分工使社会变得更加先进,生产力得到提高,促使交换的出现,职业的产生。但可能带来另一个影响,随着分工的加大,每个人掌握着部分技术,社会依赖于最初的积累,任何人都无法支撑个人的生活。这样导致整个社会的依赖性增强,当某一天面临孤立无援的境地,如何生存下去的能力早已在依赖中消磨殆尽。
24点,是指给定4个数,和一个值,如何将这4个数通过+-*/得到这个值。
一个算法是这样的:4个数字组成一个表达式还需要3个运算符,这样我们只要把这7个元素的所有排列求出来,然后求值就可以了。
但是这个算法有三个问题:
1.这样的表示出来的序列并非全部是合法的表达式,比如3344+-*
2.实际的表达式可以加括号,但是这个也无法体现出来,而且表达式计算起来还要考虑优先级,转化为后缀表达式,当然这个括号我们可以通过枚举+-*/的优先级别来代替加括号
3.数字是不能重复选择的,而运算符则可以重复
c和c++的函数名处理
首先看函数void f(){int i = 1;}
在c和c++中分别被编译成
.globl _Z1fv
.type _Z1fv, @function
.globl f
.type f, @function
观察如下文件a.c:
extern void f(int);
int main(){
f(1);
return 1;
}
假设f定义在另一个文件b.c中:
void f(int x){
int i = 1;
}

