| alienbat's profile编程 汽车 高清gadgetsPhotosBlogLists | Help |
|
August 21 (技术炫耀帖)没错,就是炫耀(目前炫耀Ruby)最近装了SuSE Linux,一一搞定显卡声卡网卡驱动,然后坐在由19寸液晶显示的Gnome华丽的界面前面,开着黑底白字的字符terminal,无线键盘放在膝盖上,面前摆着一本1000页厚的英文版Algorithm,在Chopin的Grande Polonaise的钢琴伴奏下编程...我觉得自己端的黑客起来。所以我不得不炫耀。 选个什么炫耀的题目好呢... 恩,在SHELL下面(或者window命令行),用一行程序代码打印Fibonacci数列至指定的项数。不允许使用换行或者制表转义符。 这个题目太黑客了,太黑客了。智商没180做不出来。 好吧,我承认我的智商还没有到200,所以目前用Python写不出来。主要是因为与Ruby相比,Python的语法死板多了(虽然Python在所有编程语言中还是算非常dynamic的那一型),所以很多无法在一行之内表现的元素找不到替代品。比方讲分支条件if无法写在一行里面,而Python又不支持可以写在一行内的三项表达式(a?b:c)。另外Python不似Ruby,并非每一个语句都有返回值,这就导致了使用and关键字的短路特性(既: a and b 如果a表达式不成立那b表达式就不再被计算)来模拟分支的技巧受到很大局限,因为and要求前后的语句都必须显式返回值。 Ruby就爽多了,难怪那些Perl黑客们能用Perl写诗。 当然,如果你想用那些不是用行来解析语法的语言——比如C或者Java来做,也不是不可以。理论上讲那就需要把整个程序写到一行里面,并且在同一行调用外部编译器并运行二进制代码。虽然要做到这样固然也需要很强的SHELL编程能力,但这种粗蛮的方法是黑客所不屑的... 好吧,我已经炫耀得太多了。贴出代码: ruby -e "puts lambda {|ar| ar.each_index {|i| ar[i] = ( i == 0 ? 0 : (i == 1 ? 1: ar[i - 2] + ar[i - 1]))}}.call [0]*ARGV[0].to_i" 10 强大! 最后一个"10"就是指定的Fibonacci数列的项数。 附:Fibonacci数列的定义: f(n) = 0 when n = 1 f(n) = 1 when n = 2 f(n) = f(n-1) + f(n-2) August 01 (技术帖) 论文开始(part A)No preview available.
...
...
...
...
...
...
...
...
...
...
...
正如在前篇blog提到的那样。本人本学期开始做一个准备论文。所谓准备论文就是一个占6学分的小型预备论文,目标主要是学习和阅读领域内相关文章,为下学期占整个学期的大型project作准备。
先去见了名字与著名强类型编程语言同名的Pascal,以确定研究课题。首先是Pascal本人的项目:照片地理标签,其内容大致是智能识别照片,加入朝向、地理位置、高度等等元数据,并与Google Earth结合起来,使用OpenGL进行适当的剪切、变形等等操作,以营造虚拟旅游的效果。听上去有意思,但Pascal说不久就要回法国(听口音我就知道他是法国人),再加上该project要持续一年,所以没戏。
(后来我在“驱动之家”看到了微软已经率先搞出了这个东西PhotoSynth,其表现不是一般的强悍,革命性的技术。访问 http://labs.live.com/photosynth/ 去体验)
其次就是以上网观看HTML源代码为乐的Peter的项目,全都与高性能科学运算有关:
SMP集群的通信控制
在异种集群组上的应用程序并行化
在集群计算机上的应用程序性能分析
我觉得会比较枯燥,而且很可能该玩艺不是在PC机上面跑的,无法在家工作,故而弃之。再有就是前中国人,现在是Australian Citizen的HF Wang博士,题目是如何让使用wireless的手持设备省电。我对硬件不感兴趣,故而弃之。还有H.G的项目,Pascal绕过不点,我坚持要看看,结果他说HG的项目都是些implementation project,编程为主,缺乏研究性。既然Pascal认为我应该研究,我又怎能表现出很弱的coder样呢?事实上我也对那种“编个网站”的项目毫无兴趣,那种玩艺我几年前就玩过了。
淘汰诸多项目之后,可选的基本上也就没啥了。只剩Professor Tom Gedeon,FEIT的头头。可选项目都很hardcore:
1. 计算机面部识别 - 视图变形 - 视频注解 - 三维面部模型
2. 神经元网络的理论和应用 - 层叠神经元结构 - 规则抽取
3. 模糊逻辑理论和应用 - 模糊文档过滤 - 不确定性的结合
4. 细菌进化算法 - 集群的进化算法 - 智能绘图 - 日程排定
最后几经考虑,在同为flatmate的博士的建议下我选了4。 |
|
|