摘要: 最近在使用python,python对带有负数的除法和取模运算让我栽了一个跟头,如-1 / 2在python中结果为-1,但是直观上看这个结果怎么也不对,应该是0才对,这个表达式的结果在C和C++下面结果跟我的预期一致,是0.非常疑惑python的这种计算方法,于是上网bing了一番,找到了相关的解... 阅读全文
posted @ 2014-04-15 14:56 Liqiang Gao 阅读(2698) 评论(0) 推荐(0) 编辑
摘要: C++中函数指针的形式为:返回值类型 + 参数类型,函数没有值类型,但是却可以声明函数的指针,因为函数是可寻址的,存放在内存中的代码段,可以从指针访问。函数指针可以声明为:void (*pF)(void); // ^括号1// ^括号2其中pF为参数为空,返回值也为空的函数类型,因为*操作符的优先级低于函数调用操作符,所以必须在*pF外加括号。那么如何声明返回值为函数指针的函数呢?先给出一个实例:void (* fun() )();// ^ 括号a // ^括号b// ^括号c该函数的返回值为一个函数指针,解析下这个声明的三个括号... 阅读全文
posted @ 2014-04-03 16:28 Liqiang Gao 阅读(4410) 评论(0) 推荐(0) 编辑
摘要: 今天这篇文章分析一下ghci交互解释器对类型的推导。假设有函数fn定义如下:let fn = map map现在fn的类型是:map map :: [a -> b] -> [[a] -> [b]]推导过程:1)首先map函数自身的类型为:map :: (a -> b) -> [a] -> [b]为了区分开第一个map和第二个map,将另外一个map的类型表示为:map :: (a' -> b') -> [a'] -> [b']在调用的过程中,有如下等式关系(a -> b) -> [a] -> 阅读全文
posted @ 2014-03-16 21:51 Liqiang Gao 阅读(1065) 评论(0) 推荐(0) 编辑
摘要: notepad++是一款免费开源的文本编辑器,在windows平台上表现非常好,可以自定义的地方多,还支持主题导入,导出和切换,对各种语言的语法高亮支持也是在各大文本编辑器中名列前茅,插件库的内容也非常丰富,傻瓜式安装插件,是我最喜欢的文本编辑器。关于这个编辑器的特性介绍可以参见这篇博客,非常详细地介绍了该编辑器与众不同的特性和一些使用方法:Notepad++使用心得和特色功能介绍。在自定义字体和字体大小的时候,notepad++有一个问题是不能够调整行距,在设置菜单里面找不到行距这一条设置项。如果把字体缩小,有可能会出现正文字体很小,但是行距却没有相应缩小的问题,非常影响视觉体验。如下图:网 阅读全文
posted @ 2014-03-10 22:38 Liqiang Gao 阅读(13149) 评论(0) 推荐(0) 编辑
摘要: #计算机程序的构造和解释习题解答*Structure and Interpretation os Computer Programs* Exercises Answer##第二章 构造数据抽象###练习2.17```groovy (define last-pair-1 (lambda (input) (if (= (length input) 1) input (last-pair-1 (cdr input))))) ;因为length的定义是递归定义的,所以如果是一个长列表,用length会非常耗时 ;last-pai... 阅读全文
posted @ 2014-03-09 12:21 Liqiang Gao 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 今天下午的PAT考试状态不理想,回来怒刷了一遍,解题报告如下:1073. Scientific Notation (20)基本模拟题,将一长串的科学计数转换为普通的数字表示方式。思路是是数组存储输入,然后找到指数位置,并根据指数的大小和正负对前面的小数进行针对性的处理。#include #include #include using namespace std;class PAT{public: enum { N = 10000, }; char num[N]; int finger,epos,length; void run();};void PAT::run(){ ... 阅读全文
posted @ 2014-03-01 23:26 Liqiang Gao 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 今天下午1点半到4点半是考PAT的时间,考场很安静,大家都在安静地思考,唯一能够听到的是键盘敲击的声音,和几只ACM大牛提前离场的自信的声音,那仿佛就是在说着:哈哈哈,又一次轻松过。考试结束,我还在调第二个题,在沉闷中,我没有去盲目尝试提交,最终我的第二题的提交次数为零,得分也为零,同时在第二题上的调试花了大量的时间,也影响了我检查另外三个题的一些剩下的没有通过的case,最终我的分数定格在57分,还没有及格,出了考场,完全没有心思去拿证书,就这点分数,都不好意思说自己是计算机的,也不好意思拿出来丢人。本来想着考一次PAT,冲个高一点的分数,然后给研究生阶段没有项目经历的我一点可以说服面试官的 阅读全文
posted @ 2014-03-01 19:00 Liqiang Gao 阅读(514) 评论(0) 推荐(0) 编辑
摘要: 之前在微博上看到一个很老的段子写道天黑请闭眼。学霸请睁眼,学霸请答题,好的学霸请闭眼;学渣请睁眼,学渣请坐弊,好的学渣请闭眼;监考老师请睁眼,监考老师请确定坐弊考生,监考老师请统一意见,好的监考老师请闭眼;助教请睁眼,助教今晚这名考生挂了,你要救他吗?你要让一名考生挂科吗?好的助教请闭眼。天亮了,这名考生挂了.第一次看这个段子的时候,只是一笑而过,相信大多数人都和我一样,没有去详细分析这段话的逻辑性和可行性,今天再次看到这段话,去思考了下背后的逻辑关系,发现与狼人杀的对应关系还是比较强的,不过需要一点剧情上的整理。分析下这段话中的各个角色同狼人杀中的角色的对比关系,对比如下图:很难想象,学霸在 阅读全文
posted @ 2014-02-26 12:10 Liqiang Gao 阅读(699) 评论(0) 推荐(0) 编辑
摘要: 这几天做到PAT一道比较数据大小的题PAT1065,题目不难,应该说是一道送分题,就是开数组,然后模拟人工计算的过程进行计算,再比较下就行。做完之后,联想到haskell的Integer类型是无限大的,那用到这个题里岂不是甚好!而PAT正好又支持用haskell进行答题,于是我就蛋疼地尝试用haskell来做这个题。不过之前的haskell的知识快忘得差不多了,赶紧上网脑补。花了不少时间把程序写好了,就下面几句。 1 run x count 2 | x == 0 = return () 3 | otherwise = do 4 [a,b,c] c 9 ... 阅读全文
posted @ 2014-02-24 23:34 Liqiang Gao 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 这两天忙着在准备3月份打PAT考试,许久没有接触刷题了,各种生疏各种忘记,刷题速度那是一个慢,真是为自己智商着急。今天刷题碰到了一个有意思的编程习惯性错误,好几道题都涉及到自定义排序,需要自己重写field1 field2 field2 field1 == cmp.field1)发现警告消失了,为什么会这样呢?标准库中的sort函数为什么要我们这么写?sort函数要求比较函数是strict weak ordering的,而strict weak ordering必须满足三个条件:1) Strict: pred (X, X) is always false. X跟X自己比为false2) Wea 阅读全文
posted @ 2014-02-21 00:10 Liqiang Gao 阅读(501) 评论(0) 推荐(0) 编辑