Categories
网络新发现

R大神们是这么玩乐高机器人的...

前段时间COS上说Rafael Irizarry用最小二乘法帮小朋友玩乐高,已经觉得很出手不凡了。然后今天直接看到了ev3dev.R这个东西,瞬间觉得整个人都不好了...大家要不要这么geek...71sXXBHsf6L._SL1500_

这种恶意卖萌的对话什么的实在是...总而言之,这货已经开始被进化了...

SER: Tell us more about the R part.
SERATRON: I am running RServe server. PCs can communicate with me using RSclient. They do all the heavy computations for me, I can’t be bothered (I have no FPU, can you imagine?!?). Those PCs think they can command me…

SER: Why do you have two servo motors?
SERATRON: So that I can move, you silly!

SER: Hmm, why do you have an infrared sensor?
SERATRON: So that I can avoid obstacles and I will not fall from height. Why do you have eyes donkey?

SER: Errrrrr, what are your touch sensors for?
SERATRON: They also prevent me from falling from height. If I don’t feel the surface below me I am not going to move. Would you?

SER: Ok, last question you naughty robot! What is your gyroscope and accelerometer for?
SERATRON: Can’t you count? It’s not one question but two. I use gyro to know my heading direction. No dumbass, not for balancing, I don’t use it in this axis. I don’t use accelerometer now but I could use tilt input as a third level protection from falling. I could also use it to detect collisions with other objects but I have other means.

SER: It was a pleasure to meet you (coughs), thank you.
SERATRON: I hope I will be finished for SER VII – 08.12.2014!

SERVIIRobot2

总而言之这货已经可以自我前进、躲避障碍什么的,为嘛我想起来的是我家那个扫地机器人iRobot 380t?

iRobot-Braava_thumb

对了,卖萌视频在此:http://www.r-bloggers.com/interview-with-seratron-lego-ev3-robot-driven-by-r/

Categories
经济、IT观察与思考

一些观察

随便写写,随便看看。

1. 关于研究方向。

读的paper多了,发现大多数人的研究路数无非两种:

  • 一种是锚定一个问题,然后用尽各种办法来看哪种可解。换个通俗的就是,车坏了,找出一堆工具来看看怎么可以修好。
  • 另一种则是,沿袭一套方法论的路数,试图解决越来越多的问题。通俗的讲,就是木工不满足于打打家具,还要去试试电工水工装修工。

你说孰优孰劣?没有高下之分。谁也说不好一篇好的研究到底是问题导向的还是方法论导向的。不过鉴于一般来讲方法论比较容易训练出来,所以有的时候看似包装的很漂亮的paper可能正是这个方法灵了然后倒回头来包装问题本身。

本以为这个只是看paper时候的感觉。后面发现,工作其实也不外乎如此。有的人凭着一门专业技能,比如编程,就可以在不同部门之间切换来切换去,反正总有需要用到编程的地方。有的人有一些具体问题,然后就广撒网找来各种背景的人帮忙解决。前者最后进化为技术专家,后者进化为大BOSS。

2. 关于建模

说到模型,反正上来都是那句至理名言:

没有模型是正确的,只有一些是有用的。

所以一切试图证明自己是真理的模型都是无用功。如果是真理,搞成体系那就叫他理论,可以慢慢证明就叫做定理,不证自明那就叫公理好了。反正我觉得说某个模型是正确的这种言论都是挺无聊的。

基于这一条,在实际商业环境中建模,就不要一开始给自己摆太高的期望。就跟上面说的,很多时候问题都是第一类人发现的,他们只是寻求有着不同技能的第二类人帮忙看一下,实践中谁好用就用谁。所以一群第二类人内部争来争去,什么机器学习流派啊、数理统计流派啊、计量帮啊、物理统计帮啊还是算命仙人这些其实都不那么重要...比如最近世界杯大家都在预测,那么不管你是章鱼还是小丸子还是霍金,只有预测对了大家才信你。

所以在学校里被某个流派洗脑洗的深入骨髓的,可以醒醒了。不要一上来就摆出自己是真理这样的架势。每个人在象牙塔里都是这么教的。

3. 关于统计建模

如果大家笃定就要用统计的方法了,那么要解决的问题就无非是:搜集数据(变量)、选择模型、修改参数以达到最优。

具体到项目,搜集数据这个肯定是大头。每个学过统计的都被教导过“garbage in, garbage out”。只可惜大部分老师讲完这句话之后,学生并没有多少机会实际的去搜集数据,或者更直接的去想要怎么搜集数据。大部分学校里面的训练(尤以网上数据挖掘竞赛之时)都是,数据集给定,怎么找个更好的模型来预测/评估/解释。真到了项目上需要搜集数据了,大部分人的做法无非就是先找张纸把想到的变量都分门别类列出来,然后把所有可能拿到的数据都扔进去试试,从简单的线性回归或者分类器开始,到非线性的各种模型都扔进去跑一遍,反正这年头计算能力不是瓶颈,总有合适的模型自己可以去做变量选择。

听到这里,貌似也挺好啊。是啊确实没什么不好,如果大家都有充足的时间慢慢玩的话。可惜的就是这种无脑流在大多数情况下都是受制约于时间的。于是为了省时间,要么就某些麻烦的数据不搜集了,要么就某些计算复杂的模型不去跑了。差不多就好了。解决问题了么?可能也差不多解决了70%-80%。

与此同时还有一类业务流派。这类人特别像医生似的,是某个具体领域的专家,专到什么程度呢?基本上他熟悉的地儿有个风吹草动都逃不过他的眼睛。直觉很准,或者说经验实在是太丰富了。跟这个流派的人一起工作很好玩,他们想到一个问题大概的给你指一个方向,大部分情况下八九不离十,差不多就可以把问题解决了。就算事后需要稍微建建数理模型多做一些分析和验证,基本也不会太麻烦。每当此时,不禁大呼一声畅快,瞬间觉得自己以前的思路真实的麻烦爆了。嗯,爽归爽,不过这种流派需要在一个领域浸淫比较长的时间,逃出他的领域就比较难说了。

4. 关于这些碎碎念

基本上就是想说,容易训练出来的都是不重要的...那些东西都进化很快,学术界不是白白养了一群人浪费的(虽然也挺浪费的),所以长江后浪一定会把前浪拍死在沙滩上。

与此同时,业务知识也不是那么重要的。经济环境变化太快,谁也不知道明天这个世界会变成什么样子。

那既然都是以不变应万变,那还是选一条比较开心的路子。总是需要合作的,这个世界已经复杂到没有可以一个人解决的问题了。

Categories
事儿关经济 游来游去

潮流的味道

今天的日志可能有点琐碎,以最近异常的更新频率大家就可以看出来我现在是有多么的无聊了……终于冒险坐高铁回到了家,上车后依旧自顾自的倒头睡去,管他到底什么运气!这两周,彻底把各种交通工具都坐烦了,就差去青岛坐船了!

先说说上午的所见所闻。这是继两周前跟某公司探讨了一下可能的发展方向之后,第二次继续谈这个东西。这一次见到了两位经济学背景的人,说起话来也轻松一些,至少不用我去思考怎么跳过那些专业名词来用最通俗的语言解释一件事物。不过,有点小小的被考的感觉,三个人稀里哗啦的扔给我一堆问题,还好我乱七八糟的总能扯到自己知道的方向上去,一个P-A model还是可以拿出来撑撑门面的,哈哈。

总体上依旧感觉他们对自己想做的事情想法还不是很成熟,没有具体到某一个问题,只是模模糊糊的有一个大的方向希望能够有所突破。话说,白痴了我,世界这么小,Michael老师自然应该是拜访过那里的。我,我,丢人了先。然后被问到会那些编程、尤其是写过的程序最长有多少,当时我就石化了——我想,您不是打算找我来写代码的吧?想想自己简历上虽然罗列了很多语言,现在能捡起来马上用的大概只有C和PHP了,最多再加上一个SQL语句,如果R和Matlab都不算的话。这个,我表示极度的无奈——我认为自己的编程知识足够和coder沟通就可以了,最多写写伪代码,不需要我手动写程序吧?当时那个大汗淋漓啊!您要发挥一下比较优势是不是?

好了,说点要紧的。今天我们一直在讨论,这个到底怎么判断一个拍卖是否收敛到均衡。这个,确实是一个极度缺乏实际工作经验的人难以想到的问题。是啊,在实证研究中,我们往往假设这个东西已经处于均衡状态。可是到底是不是处于均衡,这有没有一个判断的方法?从均衡的定义上来讲,应该是一个收敛到一个点的过程,或者说“有一个不动的东西”。这个东西到底在现实中是不是像我们学习理论模型时候一厢情愿的那样相信一定有还是个问题,就算有,怎么判断?尤其是在一个动态的、有噪音的市场中。我还一时真没想到什么好办法,除了看一下收敛速度之外。至于不收敛是不是均衡就不存在,这个,我真的不知道……不收敛那么就发散?发散到正负无穷又有什么意义呢?顿时真的是毫无头绪。这里面还牵扯到一个竞标者本身所处的产业的发展趋势问题,想想就好复杂,动态的均衡可能是某些外生变量的函数,这么一来就更难以定量判断了……

还有一个比较好玩的问题,说的是这个市场中不断的有新的agent加入,而这些人可能缺乏对于拍卖机制的基本认识,所以他们便成了“搅局者”。这也是继承上次谈话中我们提到的“非理性”的问题。是啊,你有一个规则,但是大家不明白这东西应该怎么玩,那么再美好的结论也是白搭。嗯,我一直在想的是,长期中我们确实是可以假设所有的agent都通过学习了解了这个过程,但是长期有多长,经济学一般难以定量的给出答案;此外,如果有更多的搅局者在动态过程中不断的加入,那么怎么对付这样的冲击,呃,我也不知道。天,真的是理论和现实的差距好大,不做实务的人怎么会意识到现实中有这么多问题!顿时觉得自己枉读了一堆论文,还没琢磨明白怎么把behavioral econ和其他经典的微观理论结合起来,没有思路上的启迪啊。是不是应该发个email骚扰一下某些prof了……真的是才疏学浅啊!

嗯,大致想起来的最有意思的就这些,看来果然从现实出发是有很多东西可以细细琢磨的,且不是一日半日便可寻的上佳良策的。哈哈,果然学习到了很多东西,看来这次的北京之行又称得上是不虚此行!好多要学习的啊,弄得我一下子又想开始看论文了……sigh,难得的假期!

好吧,现在开始灌水。首先貌似搞定了Kindle的replacement,Amazon很爽快的答应重新给我寄一个过来,不过唯一的缺陷是只能寄到香港去~唯有拜托同学先收一下了。其实要不是一直在旅行、懒得打越洋电话,新kindle估计已经拿到了……amazon的效率还是值得赞一个的!不过继续等吧,嗯啊,至少最近是没的用了。话说,这个“卓越亚马逊”什么时候开始售卖中文版的kindle书啊?我等的好辛苦啊!今天又手痒痒买了一本 The Cathedral of the Sea(中译:《海上大教堂》),在巴塞的时候就一直想看而没找到的——西文版的看不懂,英文版的直接买好贵。于是就一直忍到现在。瞬间又想起来去年临走之前拿到的那本《费曼物理学讲义》,也要抽时间看完啊,各种无奈拖到现在……此外,今天很囧的发现在卓越买完书居然没法信用卡付账了——余额不足。天,我居然把8000的额度彻底刷爆了,真人品啊!各种检讨好了,回国之后的货币幻觉啊,总觉得什么都不要钱似的,虽然另一面也在抱怨什么都贵。这个,没想到高铁还是蛮费钱的说,有点小小的出乎意料。不过综合看起来还好,两周的时间大概在路上花掉三四千块钱,比巴塞还是便宜了许多。

最后感慨一下weibo这个东西。呃,众所周知我虽然有twitter但是基本上只是用作通知一下blog更新,还链接的是我的英文的blog……饭否也是很多年前玩的了,现在已然销声匿迹了。今天好奇心起,就开始各种人肉,欲多了解一些事情。果然不是很麻烦,就顺利的搜到了想看的人的微博(哈哈,照片好卡哇伊啊)。怎奈需要登录,于是乎费了好大劲终于想起来新浪围脖的帐号密码,真不容易!登上去,开始细细浏览,嗯,嗯,好像一切都在意料之中似的,没什么特别特殊的。最多就是满足了我一下好奇心,别的地方基本上搜不到什么相关信息。不写blog的人真的很难找啊!

周围很多人都在玩微博,我不知道自己是不是真的跟不上潮流了,一点都没有那种及时获得信息的愉悦感了,每天能例行的看一下新闻就算不错了。诚然我知道微博这东西很强大,但是已经没有任何动力去玩了——以这几天的blog更新频率来说,我大概已经把这东西当微博写了,除了长了些。想说的是什么呢,真的,第一不想被信息淹没,第二想静下心来写一点东西而不是一味的推波助澜。我想,这就是blog和micro blog最大的不同吧?大致说来,我是没有动力试水micro blog了——同样的还有一点比较庆幸的,在巴塞的这一年终于戒掉了手机依赖症。现在,我真的不希望我的手机可以用来上网,能打电话发短信就可以了!然后给我一个kindle可以看看书打磨路上的时光就好了(最多连连网看看google reader)。至于互联网,还是用电脑来应付吧。像我这种人最不能买的怕就是iPad了,要不肯定是难以离手的那种。网络越发达,还是越要给自己制造一点障碍来专心致志的做应该做的事情。不能总把自己淹没在信息里面,还是要知道究竟想做的是什么的(为自己最近笑话增多做检讨,煎蛋这种网站就是不能订阅的是不是?)!

还有一件很奇怪的事儿:学校的VPN在家里(铁通)能用,在北京的宾馆里就连不上,好诡异。VPN是用cisco客户端那种,不过不知道是不是因为服务器地址含vpn,所以直接被屏蔽了。一个需要用vpn上gtalk的人,真伤不起啊~还有各位,怎么把gmail的offline激活?今天本来想装gears,去官博看了一眼已然属于末日黄花了。Gmail直接告诉我我的浏览器(FF4)不支持offline,顿时晕倒。还请支招对策!这个gmail缓慢的登录速度我真受不大了了!

Categories
事儿关经济

小窥“高维数据降维”

算了,还是“一心只读圣贤书”吧。我觉得保险公司应该开发一个新险种:高铁动车险。你看我们坐汽车坐飞机都可以有保险买的,怎么坐火车的时候从来都没有这个选项?飞机的旅行保险貌似是细致到各种可能出现的事端,比如“晚点”、“取消”,那么高铁保险也可以以“停电”“雷击”“脱轨”等等名义来帮助消费者分担风险。最近看新闻看多了,弄得我这个在欧洲这么一个航班延误算是家常便饭的地方都不买保险的人,回来之后能买就买。说了这么多,我只是在小小思量明天应该怎么回家啊,这个高铁还敢不敢坐啊?查了查明天的高铁剩余车票,基本上京沪高铁都没怎么卖出去嘛!看来大家已经开始“用脚投票”了。

刚才在例行的看订阅的东西,就瞟见木遥终于更新了一篇学术日志:J-L 定理,以及为什么一个立方体相当于一个球壳。开始的时候没注意是他的,还在想谁能用中文写关于纯数学的blog;定睛一看之后,果然是木遥。这篇日志中提到的J-L定理,大致是:

Johnson–Lindenstrauss 定理是我在今晚的一个学术报告里听说的一个非常令人惊讶的定理。简单说来,它的结论是这样的:一个一百万维空间里的随便一万个点,一定可以几乎被装进一个几十维的子空间里!

本能的出于对中文写作的文献的不信任(无关作者国籍,只是说写作语言,中文论文噪音实在是太大了,甄别起来太费事儿),我顺手搜了搜,找到了一篇1999年的证明,上曰:

The Johnson-Lindenstrauss lemma shows that a set of n points in high dimensional Euclidean space can be mapped down into an O(log n=ffl 2 ) dimensional Euclidean space such that the distance between any two points changes by only a factor of (1 Sigma ffl).

到这里,基本和上面先引用的木遥深入浅出的解释一致了。Google scholar继续给力,一下子又看到了两篇应用这个定理的paper:

  1. Ella Bingham and Heikki Mannila. 2001. Random projection in dimensionality reduction: applications to image and text data. In Proceedings of the seventh ACM SIGKDD international conference on Knowledge discovery and data mining (KDD '01). ACM, New York, NY, USA, 245-250.
  2. Nir Ailon and Bernard Chazelle. 2006. Approximate nearest neighbors and the fast Johnson-Lindenstrauss transform. In Proceedings of the thirty-eighth annual ACM symposium on Theory of computing (STOC '06). ACM, New York, NY, USA, 557-563.

(还请大家暂时容忍我的引用不规范……不想开Zotero了)

第一篇文章便是应用了Random projections来进行降维处理,是一篇实证文章,比较了Random projections和其他经典方法的优劣,采用的是图像和文字数据;第二篇则是基于上面的J-L定理,发展出来的Fast-Johnson-Linden-strauss-Transform(FJLT)变换算法:The FJLT is faster than standard random projections and just as easy to implement. 看到这里,大致可以理解J-L定理的基本原理和相应的发展趋势了。当然,还有一些研究者在继续探究J-L定理的性质,比如这篇William B. Johnson , Assaf Naor, The Johnson-Lindenstrauss lemma almost characterizes Hilbert space, but not quite, Proceedings of the Nineteenth Annual ACM -SIAM Symposium on Discrete Algorithms, p.885-891, January 04-06, 2009, New York, New York。我就没有细细看此文了,以一个标题党的眼光这篇文章大致指出了J-L定理(或者引理?)还不足以完美的勾勒Hilbert空间的性质吧。

关注高维数据降维,一者是最近貌似高频大规模数据处理很热,姑且认为这种需求大概是近十几年计算机大规模应用在各个行业的必然结果吧;另者巧的是最近google不是出了个新的图片搜索么,可以直接拖图到搜索框中。正好看到了一篇blog论及与此,好奇之下也就在关注google的算法:

When you upload an image to Search by Image, the algorithms analyze the content of the image and break it down into smaller pieces called “features”. These features try to capture specific, distinct characteristics of the image - like textures, colors, and shapes. Features and their geometric configuration represent the computer’s understanding of what the image looks like.

  • 对于每张图片,抽取其特征。这和文本搜索对于网页进行分词类似。
  • 对于两张图片,其相关性定义为其特征的相似度。这和文本搜索里的文本相关性也是差不多的。
  • 图片一样有image rank。文本搜索中的page rank依靠文本之间的超链接。图片之间并不存在这样的超链接,image rank主要依靠图片之间的相似性(两张图片相似,便认为它们之间存在超链接)。具有更多相似图片的图片,其image rank更高一些。

简而言之,Google不过是把图片的特征提取,从我的理解来看也是一种把高维数据进行降维处理的思路。

说来有趣,我本身不是一个学计算机出身的,虽然机缘巧合的在大学期间学了很多涉及编程的东西,但更多只是限于语法,还谈不上算法。总所周知,国内的算法和数据结构教材有够陈旧和不实用,所以当年算法就没学好……不过对于“时空复杂度”的基本概念还是有的。后来发现经济学里面居然也盛行编程,当然大多数是一种数值模拟的思路(计量除外)。只是这里大多情况下也用不到什么算法了,一个定理出来之后算法的思路基本就很明晰了,更多的只是在于如何更好地定义初始的数据结构,以及一些基本的小tricky的选择(比如是插值算法是牛顿插值还是其他)。另有一种感觉就是以现在计算机的高计算能力和大多数情况下经济学里面对于模拟的要求,根本不需要找个高效率的算法——大多情况下循环也循环不了多少次,计算机跑1秒和2秒的差别又何在?弄得我有时候就是偷懒,明知程序写出来很没效率,还是不愿把时间花费在思考一个更有效的算法上——只要找一台更好的计算机便是了嘛!于是在我的笔记本已然承载不了的情况下,开始折腾学校里面的计算机,哈哈。当然,已知的更好的收敛算法还是会考虑的,比如经典的"policy function iteration"和"value function iteration"……顿时想起当年严格证明前者的迭代结果和后者一样的痛苦经历……于是于我,心里便暗暗的有种感觉,算法不是学CS人的事儿,是学math的人的事儿……各种美妙的数学定理才是更好的算法的源泉啊。

另,木遥提到的另外的关于高维空间中大数定理的问题,也很有趣,值得稍稍琢磨一下。无奈我数学基础还不够,尚不能完全理解他说的那些东西,看来还是需要时日打磨啊。

Categories
读书有感

动态规划简介和算法

说起来蛮奇怪的,有些原来积累的东西现在却又出现了,而且变得貌似很有用。

这次的体会就是“动态规划(Dynamic Programming)”,貌似只是原来学编程玩儿的时候一部分很简单的内容(或者说,编程看来很简单),却不幸的在经济学理论的应用中彻底把我弄晕了。今天突然间想起来要好好的去看看,结果一搜,大汗无比——居然全是编程的东西,而且越看越熟悉,如鱼得水……哦,这就叫做融会贯通么?

下面都是转载的内容,我想对于一个学习过“算法和数据结构”的人来说,看看下面的东西应该不成很大问题——像我这样不求甚解不去理会详细的数理证明的话……看完了熟悉的程序,然后回头看在宏观经济学里面的应用——最优化求解,实在是感觉,天高气爽啊!

以下内容均来自:http://www.comp.nus.edu.sg/~xujia/mirror/algorithm.myrice.com/algorithm/technique/dynamic_programming/index.htm

动态规划的发展及研究内容

动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一系列单阶段问题,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。1957年出版了他的名著Dynamic Programming,这是该领域的第一本著作。

动态规划问世以来,在经济管理、生产调度、工程技术和最优控制等方面得到了广泛的应用。例如最短路线、库存管理、资源分配、设备更新、排序、装载等问题,用动态规划方法比用其它方法求解更为方便。

虽然动态规划主要用于求解以时间划分阶段的动态过程的优化问题,但是一些与时间无关的静态规划(如线性规划、非线性规划),只要人为地引进时间因素,把它视为多阶段决策过程,也可以用动态规划方法方便地求解。

多阶段决策问题

多阶段决策过程,是指这样的一类特殊的活动过程,问题可以按时间顺序分解成若干相互联系的阶段,在每一个阶段都要做出决策,全部过程的决策是一个决策序列。要使整个活动的总体效果达到最优的问题,称为多阶段决策问题

动态规划的基本思想

前文主要介绍了动态规划的一些理论依据,我们将前文所说的具有明显的阶段划分和状态转移方程的动态规划称为标准动态规划,这 种标准动态规划是在研究多阶段决策问题时推导出来的,具有严格的数学形式,适合用于理论上的分析。在实际应用中,许多问题的阶段划分并不明显,这时如果刻 意地划分阶段法反而麻烦。一般来说,只要该问题可以划分成规模更小的子问题,并且原问题的最优解中包含了子问题的最优解(即满足最优子化原理),则可以考 虑用动态规划解决。

动态规划的实质是分治思想解决冗余,因此,动态规划是一种将问题实例分解为更小的、相似的子问题,并存储子问题的解而避免计算重复的子问题,以解决最优化问题的算法策略。

由此可知,动态规划法与分治法贪心法类 似,它们都是将问题实例归纳为更小的、相似的子问题,并通过求解子问题产生一个全局最优解。其中贪心法的当前选择可能要依赖已经作出的所有选择,但不依赖 于有待于做出的选择和子问题。因此贪心法自顶向下,一步一步地作出贪心选择;而分治法中的各个子问题是独立的 (即不包含公共的子子问题),因此一旦递归地求出各子问题的解后,便可自下而上地将子问题的解合并成问题的解。但不足的是,如果当前选择可能要依赖子问题 的解时,则难以通过局部的贪心策略达到全局最优解;如果各子问题是不独立的,则分治法要做许多不必要的工作,重复地解公共的子问题。

解决上述问题的办法是利用动态规划。该方法主要应用于最优化问题,这类问题会有多种可能的解,每个解都有一个值,而动态规划找出其中最优(最大或最小)值的解。若存在若干个取最优值的解的话,它只取其中的一个。 在求解过程中,该方法也是通过求解局部子问题的解达到全局最优解,但与分治法和贪心法不同的是,动态规划允许这些子问题不独立,(亦即各子问题可包含公共 的子子问题)也允许其通过自身子问题的解作出选择,该方法对每一个子问题只解一次,并将结果保存起来,避免每次碰到时都要重复计算。

因此,动态规划法所针对的问题有一个显著的特征,即它所对应的子问题树中的子问题呈现大量的重复。动态规划法的关键就在于,对于重复出现的子问题,只在第一次遇到时加以求解,并把答案保存起来,让以后再遇到时直接引用,不必重新求解。

先贴这么多,详细的内容还是去上面的网址看吧,很好的一份网路教程,难得是新加坡国立大学的中文版。