当然, 如果一个语言将所有东西都归结到递归上, 习惯了也就可以使用了, 脑袋还
是容易训练的.
王磊 写道:
你是说fp需要我们把脑袋训练成多核的?:-)
在07-11-12,red...@gmail.com <red...@gmail.com> 写道:递 归需要脑袋同时考虑多个 context 的影响, 动态性比循环强, not brain friendly.
当然, 如果一个语言将所有东西都归结到递归上, 习惯了也就可以使用了, 脑袋还
是容易训练的.
王磊 写道:
> 一直无法正确理解递归这一牛X的复杂算法。
> 偶尔会手动写一些汉诺塔,的移动顺序。。。。A-〉B ,B-〉C。。。。。
>
>
pongba 写道:
> 我觉得递归之所以难以grok,是因为当人脑去模拟递归运行的时候,需要模拟一
> 个栈,这个栈随着递归层次的加深会出现两个问题:
> 1. 人脑需要保存越来越多的临时变量。大家都知道,通常人能够短期存放在脑
> 子里面的信息是有限的,有时候为了辅助思维甚至要一边思考一边写,以免想着
> 想着就忘掉前面的了。
> 2. 每层栈上的几个变量都是重名的。给人脑带来很大的混淆。都是同样的几个
> 参数,却在不同的时间点上具有不同的值。
>
> 如果是循环,想想看会有什么不同?
>
No, 多核的脑袋最多同时处理多个循环 :)
要将脑袋训练成为 莫比斯环 形状, 对付递归就轻而易举了.
莫华枫 写道:
你是说fp需要我们把脑袋训练成多核的?:-)
在07-11-12,red...@gmail.com < red...@gmail.com> 写道:递归需要脑袋同时考虑多个 context 的影响, 动态性比循环强, not brain friendly.
当然, 如果一个语言将所有东西都归结到递归上, 习惯了也就可以使用了, 脑袋还
是容易训练的.
王磊 写道:
> 一直无法正确理解递归这一牛X的复杂算法。
> 偶尔会手动写一些汉诺塔,的移动顺序。。。。A-〉B ,B-〉C。。。。。
>
>
这恰恰是需要避免的思考方式
递归描述的是N(n+1) =F(N(n)) 你的意思是一般人容易去想n-1 n-2 .... 这一方面是没有受过专业的训练
另一方面是一种本能的怀疑和不信任感,因为人们总是难以假设N(n)是绝对正确的。
如果能克服这一点,就会好多了
没有当初一班子数学牛人在那里研究递归,
就没计算机这玩意儿了。
老祖宗图灵机就是递归的。
可以在维基百科上看看
图灵可计算 : Computable function
μ递归:μ-recursive
原始递归: primitive recursive
////////////////////////////////////////////////
On 11月12日, 上午9时21分, SpitFire <spitfi...@gmail.com> wrote:
> 我现在倒是觉得递归非常自然,想算法的时候,首先想的就是这是个递归么
>
> 在07-11-12,hayate <hayate...@gmail.com> 写道:
>
>
>
>
>
> > 嗯 所以训练是必要的
> > 这样来看 也许是件无可奈何的事情 又要不吃草又要跑得快。
>
> > On Nov 12, 2007 3:46 PM, pongba <pon...@gmail.com> wrote:
>
> > > On Nov 12, 2007 3:41 PM, hayate <hayate...@gmail.com> wrote:
> > > > 这恰恰是需要避免的思考方式
> > > > 递归描述的是N(n+1) =F(N(n)) 你的意思是一般人容易去想n-1 n-2 .... 这一方面是没有受过专业的训练
> > > > 另一方面是一种本能的怀疑和不信任感,因为人们总是难以假设N(n)是绝对正确的。
> > > > 如果能克服这一点,就会好多了
>
> > > Yup, that's right ;)
> > > 问题就是,常人不会一开始就这么做。以及常人为什么一开始不这么做呢?
>
> > > > On Nov 12, 2007 3:32 PM, pongba < pon...@gmail.com> wrote:
> > > > > 我觉得递归之所以难以grok,是因为当人脑去模拟递归运行的时候,需要模拟一个栈,这个栈随着递归层次的加深会出现两个问题:
> > > > > 1.
>
> > 人脑需要保存越来越多的临时变量。大家都知道,通常人能够短期存放在脑子里面的信息是有限的,有时候为了辅助思维甚至要一边思考一边写,以免想着想着就忘掉前面的了。
> > > > > 2. 每层栈上的几个变量都是重名的。给人脑带来很大的混淆。都是同样的几个参数,却在不同的时间点上具有不同的值。
>
> > > > > 如果是循环,想想看会有什么不同?
>
> > > > > On Nov 12, 2007 3:27 PM, 莫华枫 <longshank...@gmail.com> wrote:
> > > > > > 你是说fp需要我们把脑袋训练成多核的?:-)
>
> > > > > > 在07-11-12,red...@gmail.com < red...@gmail.com> 写道:
>
> > > > > > > 递归需要脑袋同时考虑多个 context 的影响, 动态性比循环强, not brain friendly.
>
> > > > > > > 当然, 如果一个语言将所有东西都归结到递归上, 习惯了也就可以使用了, 脑袋还
> > > > > > > 是容易训练的.
>
> > > > > > > 王磊 写道:
> > > > > > > > 一直无法正确理解递归这一牛X的复杂算法。
> > > > > > > > 偶尔会手动写一些汉诺塔,的移动顺序。。。。A-〉B ,B-〉C。。。。。
>
> > > > > > --
>
> > > > > > 反者道之动,弱者道之用
> > > > > > m...@seaskysh.com
> > > > > > longshank...@gmail.com
On Nov 12, 4:21 pm, SpitFire <spitfi...@gmail.com> wrote:
> 我现在倒是觉得递归非常自然,想算法的时候,首先想的就是这是个递归么
>
> 在07-11-12,hayate <hayate...@gmail.com> 写道:
>
>
>
>
>
> > 嗯 所以训练是必要的
> > 这样来看 也许是件无可奈何的事情 又要不吃草又要跑得快。
>
> > On Nov 12, 2007 3:46 PM, pongba <pon...@gmail.com> wrote:
>
> > > On Nov 12, 2007 3:41 PM, hayate <hayate...@gmail.com> wrote:
> > > > 这恰恰是需要避免的思考方式
> > > > 递归描述的是N(n+1) =F(N(n)) 你的意思是一般人容易去想n-1 n-2 .... 这一方面是没有受过专业的训练
> > > > 另一方面是一种本能的怀疑和不信任感,因为人们总是难以假设N(n)是绝对正确的。
> > > > 如果能克服这一点,就会好多了
>
> > > Yup, that's right ;)
> > > 问题就是,常人不会一开始就这么做。以及常人为什么一开始不这么做呢?
>
> > > > On Nov 12, 2007 3:32 PM, pongba < pon...@gmail.com> wrote:
> > > > > 我觉得递归之所以难以grok,是因为当人脑去模拟递归运行的时候,需要模拟一个栈,这个栈随着递归层次的加深会出现两个问题:
> > > > > 1.
>
> > 人脑需要保存越来越多的临时变量。大家都知道,通常人能够短期存放在脑子里面的信息是有限的,有时候为了辅助思维甚至要一边思考一边写,以免想着想着就忘掉前面的了。
> > > > > 2. 每层栈上的几个变量都是重名的。给人脑带来很大的混淆。都是同样的几个参数,却在不同的时间点上具有不同的值。
>
> > > > > 如果是循环,想想看会有什么不同?
>
> > > > > On Nov 12, 2007 3:27 PM, 莫华枫 <longshank...@gmail.com> wrote:
> > > > > > 你是说fp需要我们把脑袋训练成多核的?:-)
>
> > > > > > 在07-11-12,red...@gmail.com < red...@gmail.com> 写道:
>
> > > > > > > 递归需要脑袋同时考虑多个 context 的影响, 动态性比循环强, not brain friendly.
>
> > > > > > > 当然, 如果一个语言将所有东西都归结到递归上, 习惯了也就可以使用了, 脑袋还
> > > > > > > 是容易训练的.
>
> > > > > > > 王磊 写道:
> > > > > > > > 一直无法正确理解递归这一牛X的复杂算法。
> > > > > > > > 偶尔会手动写一些汉诺塔,的移动顺序。。。。A-〉B ,B-〉C。。。。。
>
> > > > > > --
>
> > > > > > 反者道之动,弱者道之用
> > > > > > m...@seaskysh.com
> > > > > > longshank...@gmail.com
递归的确更本质,更自然。不过很多情况下本质的东西更不容易为人理解。比如相对论。