2020-04
10

强大到让我瑟瑟发抖的递归

By xrspook @ 8:41:56 归类于: 烂日记

大学学习C语言的时候,基本上我不会写单独的函数,所有要解决的事都在主函数里搞定了。当时我学过判断和循环,但是,我却从来没学过递归。在解决一些简单事情的时候,循环跟递归,没什么差别。从理解程度来说,我觉得循环更简洁一些,但是,当某个东西像套娃那样一层叠一层,每层里面依然用同样的规则继续套叠,不知道要叠多少层的时候。递归就会展现它无穷的魔力。循环难以实现这个,又或者循环并非实现不了,但是递归在完全不需要体现循环的框架下,简洁的语言就已经在做着循环的事情。

昨天,我第一次在Python里见到这个恐怖的递归。外国人的书,我觉得都有一个特点。正文的时候举的例子都很简单,但是一到习题,就会把你彻底搞死。习题里面会偷偷带入一些超纲的东西。大概写书的人理所当然默认你应该知晓。这种事情我已经在学习Java的时候领略过。当时那本书之所以没法看下去,就是因为我没办法想象出作者的脑洞到底是什么。他们的习题几乎可以说大多是一些填空题,但要实现一个功能,其实未必一定就得用某种方法。你给我一个条件,给我一些目标值,我能做出来也就OK了,为啥必须走你的路呢,这非常难。之前我不觉得自己跟外国人的脑洞到底差多远,但是当我对比过自己和他们写的程序以后,我发现真的差挺远的。虽然我们都能实现某个功能,就效率而言,感觉上没差多少,因为我只是在做一些非常初级的东西。应试教育的时候,有标准答案,当然好判定成绩,但实际上,编程这种东西真心应该天马行空。给我一个效率的限制,比如说完成某件事,必须在多长时间之内解决,代码长度不能多于多少,至于我用什么办法,这是我的事。

说回递归函数这件事,在处理几个简单数字的时候,可能你感觉不到它的强大,但是,当我见识过用那个东西画出来的层级图形以后,我简直就只有站在旁边瑟瑟发抖的份儿。真的不知道是哪个神经质想出来这么强大的东西。但实际上,深究下去,那也不是很强大,那不过是不断地重复一些已经设计好的事情而已。如果要人去做那些重复,一开始还好,但是随着事情的深入,会慢慢乱套,但是计算机不会,他们会一根筋地执行我们的指令。最终出来的结果是令人惊叹的优雅,还是乱七八糟一坨屎:就得看设定规律的人的功力了。

递归现在对我来说是一个非常恐怖的东西。因为我不了解它,所以我害怕它,就像当年认识循环一样。但是,用好递归以后,我的武器库里就会增加一个杀伤性非常大的家伙。说到递归,让我联想起新冠病毒。这个东西的递归到底什么时候才是个头?我觉得这肯定不是一个死循环,自然界非常擅长递归,处处都是数学和逻辑你知道吗?!但是,到底要递归多少次,全人类才最终能看到隧道尽头的曙光呢?到底这个新冠病毒函数的递归里埋伏了多少个随机数呢?学习递归让我明白到,层级少好对付,层级一旦扩增,那就是次数级的增长,而且,说不准到达一定层级的以后就会触发某些大招炸弹,想想都心寒。

编程是一个让我重新理解自然规律的过程。

2016-04
3

基本属性

By xrspook @ 21:38:25 归类于: 烂日记

今天我突然发现极强的条理性和随之自然而然的麻利是我的基本属性,不只是工作或干某些特定事情的时候才能会那样,我生活中的方方面面都在严格执行着那个。除非我真的很闲不知道要做些什么,但近期已经几乎没有时间做白日梦了。

条理+经验=麻利

条理是处理问题的方式,是盲头苍蝇乱撞一通还是很有章法有先有后?条理性和是不是第一次接触没有关系、和人的习惯有很大关系。有条理的人可以把自己的事处理好,同时,在经过一定时间的锻炼后,可以成为很好的管理者。连自己都管不好的人怎么可能管理好别人?!不同人的条理性可以很不同,这跟每个人的思维方式有非常大关系。不同处理方式只要最终都能达到同样的效果,用任何方式都是没有问题的,但大家在选择到底用哪个人的方法的时候当然会兼顾完成速度和完成质量。条理性可以让人在第一次接触陌生事物的时候不乱阵脚。这是解决问题最基本的技能。

经验是一种厚积薄发的东西。你不能要求一个新人入职的时候就经验丰富。招聘的时候当然可以招有相关工作经验的人,但不同的工作还是会有各自的特殊性。即便是同样的工作在不同时间和地点完成也需要在细节上做细微的调整。经验是一种底气,一种把握大局的能力。因为见识多了,所以遇事不乱。如果之前已经做过当然可以轻松地按部就班,即便之前没碰到过也可以根据相关的处理方式得出比较靠谱的解决方法。积累并总结出经验能让人更有条理性。把分类对比成为定性思维的条件反射,一开始就能判断出事情的轻重缓急。有些人轻易做好了某事是TA的直觉,但实际上不然,那肯定不是与生俱来的,而是通过后天不断训练掌握的,那是经验!只不过他们把那和身体的条件反射融为一体无招胜有招而已。不想把经验具体化分享出来就把那推给老天爷说那是天赋直觉,够抠门的。

麻利是最终的输出效果。有了经验知道该怎么做,以条理把目标具体输出,当然导致最终的过程就是麻利。

昨天有人在我的blog里留言询问牛奶包装之类的东西,我回复了好长的一段,用一二三四点娓娓道来。从来我都不觉得自己说话很有条理,尤其是紧张的时候,简直是哑口无言。但原来当我有所思考有足够时间慢慢输出的时候我还是可以弄得很完备的。我喜欢到我之前没去过的地方游历探险,但之前我会先做好规划,比如说路该怎么走,大概要花多少时间等等。这都是我在开始长距离快走/跑步后养成的习惯。时间距离是最基本的要求,要走大路还是小路要搭车还是做地铁都得规划好。各种分类对比的习惯贯穿于我生活的方方面面,无论是在网购的时候还是在逛超市的时候。这是因为女人为了一些小钱太抠门?如果男人也能把这些斤斤计较用在大事上估计我们的社会就不会出那么多没必要的意外了。

又到了该睡觉的时候了,但我今天还有超过4000步才能完成2W步的任务,抓紧时间啊啊啊~~~

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress