科学网

 找回密码
  注册

tag 标签: 递归

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

对思考的思考
热度 1 lixyong 2020-4-26 12:37
对思考的思考,我有个认识: 1.不会思考; 2.迷茫的痛苦; 3.思考强度正向反馈迭代和叠加(危险) 4.有主动意识控制的思考,思路方向、强度、迭代和叠加程度等的控制;5.专精思考; 6.自由思考; 7.轻松思考; 8.在生活、工作、俗务中思考; 9.思考与生活、工作、俗务并行; 10.界定清楚思考与生活、工作与俗务的 分类和界线; 11.构造自己的两个世界--思考的世界vs生活、工作、俗务的世界; 12.逐步建立和培养自己的两个世界之间的对话。 13.建立对话的机制和方法论的复杂的程度逐步提高和完善; 14.当对话的机制和方法论复杂程度到达自己的极限的时候,从上9-13步骤 进入下一轮循环迭代,如有能力与上一轮叠加。
个人分类: 读书思考|2608 次阅读|5 个评论
线性代数(1)_这样开始讲“行列式”
cambaluc 2020-3-12 10:16
这学期在网上讲线性代数,对一些在教室黑板上很容易说清楚的问题,都得搬到计算机上进行,关键是看不见学生的反映,有人说出些小作业随时让学生做,可是,数学课不同于其它课,信息量知识量大做题耗时不必说,很多抽象思维的东西是需要现场交流的,虽然也是直播,有的只可 ” 意会 ” 的内容很不好远程 ” 言传身教 ” 。 这样,师生都守着电脑上课,也是可利用的,正好这届学生已学过 C 语言课,所以上线性代数,我也试着引入用 C 语言计算一些问题。同时用自然语言、数学语言、计算机语言,从不同的角度描述和理解同一数学问题也许更好。教材上来就讲行列式,并且用什么“对换”“逆序”来讲,想想学生看着 PDF 电子文件也够头痛的。 线性代数,对学了 C 语言的同学该这样开始学: 递归方法计算行列式 我先简单引入向量,就是一列有序的数,这是学生熟悉且好掌握的,简单介绍矩阵,让学生和 C 语言二维数组联系起来,再正式开讲方阵的行列式。引入矩阵的余子阵概念,即方阵 A 中划去某元素所在行及所在列的元素后剩余元素所组成的 n-1 阶方阵 , 记为 Aij ,就可自然引出用如下递归定义计算行列式 det(A) 或 |A| 。 如果 A 是 1 阶方阵, A 只有一个元素, det(A) 为 A 的值,即 det(A)=A 。否则 n1 时,行列式值为: 根据这个定义,先讲一些示例,按着以上算法,再介绍 C 程序。虽然有的同学 C 语言学的不怎么好,但大概思路还是可接受的。 主程序调用: det(A,N) 我写的 det 函数为: ( 倒数第四行 delete [] A1k; ,还是学生告我他的编译器对“ delete A1k ”有警告而改正的。 ) 这个定义,开始可能难点,但再熟悉一下二阶行列式的计算,就可很自然地理解行列式的性质,如对换、数乘、倍加变换对行列式值的影响。也很容易理解行列式的按行、列展开。 有了以上行列式计算的程序,也容易理解克拉默法则解线性方程组、求伴随矩阵等程序。 教材上也没涉及行列式的几何意义,只是一味的算算算,行列式其实是代表向量组所组成的平行四边形有向面积(三维是体积),画了如下图简单介绍,了解几何意义也对以后学习矩阵或向量组的秩时为什么用到行列式,有个直观的映像。对线性变换导致的空间变换也好理解,对 |AB|=|A||B|=|B||A|=|BA| 等性质看起来也很直观了。 通过举例分析一些复杂的行列式计算,学生基本能掌握行列式这一章。 另外,递归程序计算行列式时,随着 n 的增大,计算量是很大的,如以下四阶矩阵, 算 4 阶矩阵的行列式共调用 det(A) 的次数为 1+4+4*3+4*3*2=41 次。 对于 5 阶,是 1, 5, 5*4, 5*4*3, 5*4*3*2 =206 次, 对于 6 阶 1237 次, 7 阶 8860 , 8 阶 69281 次。
个人分类: 数学|3658 次阅读|0 个评论
数学漫画 (廿一) 学习递归
热度 5 jiangxun 2018-4-17 08:11
作者:蒋迅 下面的两幅漫画都是美国著名漫画系列“南西”( Nancy )中的。两幅画都是一个主题:睡梦中的睡梦,只不过一个是女孩,另一个是男孩。 Nancy: I have a dream that ... Sluggo: I have a dream that ... 女孩“南西”是美国著名漫画家埃尔尼·布什米勒 ( Ernie Bushmiller ,1905 - 1982) 于1933年创作的一个人物。1938年,他又引入了南西的朋友“斯鲁戈·斯密斯” (Sluggo Smith)。布什米勒于1982年去世。他的专栏由其他艺术家继续发行至今。 这个专栏上的数学内容不多。上面两个都是表现的“ 递归 ”( recursion ) 的概念。那么用漫画的形式表现递归,还能用什么形像呢?其实很多。下面就是更多的例子。 递归车载 递归 是 不动点组合子 猫咪看着镜框里的猫咪看著镜框里的猫咪 俄国套娃 3D打印机打印3D打印机 要想理解递归,必须先理解递归 Google 最后这个是Google的一个小功能。如果你在Google上搜寻recursion,它会问你是指recursion吗?点击后又到了这一页。Google有很多这种小玩意。比如,如果你打入google gravity,然后按I am feeling lucky,你会看到Google的gravity。还可以试试Google Image Search, 然后打入“atari breakout”,你看到什么breakout。“Atari, Inc”是一家游戏公司:“ 雅达利 ”。 Breakout 是它的一个游戏。此游戏是由诺兰·布什内尔和史蒂夫·布里斯托构思,并且是参考1972年雅达利街机游戏《乓》创作,于1976年4月发布,并且已衍生了不少打砖块作品,如《Gee Bee》和《快打砖块》。
个人分类: 谈数学|13031 次阅读|11 个评论
Python: 递归
haibaraxx 2017-6-6 20:01
递归: 1. 执行时逐层递归调用,遇到边界条件停止递归,并逐层返回调用至最初层,系统资源消耗比循环大。 2. 递归必须要有边界条件,即停止递归的条件。 如 n ==0 or n ==1 3. 递归的代码更简洁,更符合自然逻辑,更易理解。 脚本示例: 递归 - 汉诺塔游戏 三个塔座A B C上各有一根针,通过B把n个盘子从A针移动到C针,且移动时必须遵循下列规则: 1)盘子可以插入在A B C塔座的针上 2)每次只能移动一个盘子 3)任何时刻都不能将一个较大的盘子压在较小的盘子之上
个人分类: Python|2488 次阅读|0 个评论
【泥沙龙笔记:人脑就是豆腐,别扯什么递归了】
热度 1 liwei999 2016-3-8 02:25
我:“ 要不是因为 ”的用法 有点意思:要不是=如果不是,是个条件状语从句的主从连词(否定式) ;“ 因为”也是状语从句的主从连词,说的是原因 。 这两个 主从 连词常常连在一起用,把句式弄得复杂了 。英语的大体对等物是, 要是因为 = if it is because /for ...; 要不是因为 = if not because /for ... 有趣的是,理论上应该有两个从句 embedding,然后才是主句: S2],那么 S3 确实偶尔也有这种例子,虽然少见: 但是更多的时候,因为人的头脑的递归机制严重局限,短期记忆限制难以处理embedding,因此前面两个连词共享一个子句,就是说 S1 和 S2 合一了: 这样一来,第二个连词“因为”就成了聋子的耳朵,纯粹是摆设,因为上面这句与下句显然是语义等价的: 也就是说,(外)条件 盖过了 (内)原因,看上去似乎是原因后面的结果被省略了,人的内部理解机制可能隐约有标配补偿? 白: 条件和因果,根本不是外和内的关系,而是事先和事后的关系。“因为”在这里并不是一对括号的一端,而只是对“事后”这一特征的提示而已。也就是说,“要不是因为”不仅在表达条件的前件,也同时在表达前件“已然”满足,所以条件的后件就是“顺理成章”的事儿了。 进一步说,就连“要不是”也隐约有“事后”的意思,所以“因为”可省。 但“如果你不来,我(就)不走”就没有“事后”的意思。 所以,不可能出现“如果因为你不来,我不走”这样的与伟哥例句平行的表述。 在前件“已然”从而后件“顺理成章”的场景下,条件和因果是重叠的,有一已足。所以,“因为”门开半扇只是在强调事后而已,与连词的呼应和递归已无半毛钱关系。 “要不是A,早就B”的逻辑表达是“A蕴含非B”且“A已然”。 “因为A,所以非B”的意思同样是“A蕴含非B”且“A已然”。 这种逻辑语义上的重叠架空了“因为”,使之只沦为一个强调“已然”的符号而已。 毛泽东“为人民服务”里面使用了逻辑连词的嵌套。“因为我们是为人民服务的,所以我们如果有缺点,就不怕别人批评指出。”这里没有半扇门的问题。 很清楚地表明“为人民服务”是“已然”。 我: 毛的这句很有意思,正好相反:是因果嵌套了条件,而不是条件嵌套了因果。 的确当条件嵌套因果的时候,因和果都是是已然的条件,因为未然的因果与 “要不是”有逻辑冲突。 无论如何,条件子句与原因子句合一的例子也进一步说明了,人类语言面对递归是多么地局限、局促、无能,只小小绕了两层s,人就不答应了,能省则省。 谁以后再跟着乔老爷后面瞎嚷自然语言是递归的,我就急,说他是大白天睁眼说瞎话。 事实就是,人脑太小,根本递归不起来,玩不转 center-embedding。 人脑就是豆腐,别扯什么递归了。 洪: 有道是: 仿脑类脑处处兴, C/GPU堆不停。 古人闻之也亢奋, 豆腐脑汁早发明。 乔爷的理论是给聪明人整的,一般人脑后天都被调参数调成豆腐脑,@wei 你知道的!乔爷说:士不可以不弘毅,任重而道远。递归模型,必须的!人发明计算机,本意就是替人做计算,特别是做递归。 我: 都是调参的错了?狼孩没调过参,也不见他的天生的强大的递归帮了他什么。如果说一个机制是本质的、强大的,有很大的潜力,但是这个机制跟陌陌约炮也差不多,见光就死,那么我们是赞叹造物主的伟大呢,还是怀疑这个机制根本就是银样镴枪头,子虚乌有更实事求是呢? 白: 我同意伟哥的结论,人脑就是块豆腐,短时记忆早决定了嵌套不过三,但是这个例子并不是论证结论的合适例子。 conj1 block1 conj2 block2 conj3 block3 conj3/,七个了,已经到了常委人数。 再多,国家都管不好了,何况parse. 结合“已然”特征,“要不是”的英语翻译可能不是简单的“if not”而是还要辅以时态的变化。 反事实条件,需要使用虚拟语态 。 在反事实条件的大语境下,“因为”就可以译成一个无关紧要的插入语“'cauz……” 洪: 按实际实现执行来说,人脑和电脑其实五十步笑百步,彼此彼此。算fibonacci数,若直接按递归来,机器也overflow。你总不能说递归不适合电脑吧。 hanoi tower问题,人不懂递归概念,如何解? 豆腐脑指人年轻, 及至老来豆渣成。 油翁依旧递归信, 不过只会调两层。 我: 调两层还递归个球啊 哈 洪: 要不咱怎敢自谦已成“豆腐渣” 白: 一个推论就是,在不超过常委人数那么多个连续token中,一定有两个互为填坑关系。因此,参考常委人数设定滑动窗口,通过词典的语义的统计的十八般兵器找到正确的填坑配对,这事儿就可以做下去,也没递归什么事儿了。 而窗口每滑动一次,一定只有不超过滑动窗口长度个旧配对候选出去、新配对候选进来。真实情况往往是滑动窗口长度的一半。所以这个过程一定是线速的。一切非线速的递归,都是耍流氓。 我: 大赞: 一切非线速的递归 都是耍流氓。2016 三八警句。 至于递归理论促进了电脑科学、电脑语言及其算法的发展,可以另当别论。毕竟机器与人、电脑与人脑、电脑语言与自然语言是形似而本质不同的两套体系。混同这两个 monsters,是小报记者、愚民、IT大佬和部分人工智能“学者”共同运作或忽悠的结果,离真实的世界和真理太远。不得不说, 在这个人脑电脑本质不同的AI大是大非的问题上,乔老爷还是坚定的、清醒的,不像他的自然语言递归论那样糊涂。 洪:乔爷时抓两头,一头全球现实政治,另一头human mind/language,中间鸡飞狗跳的事,他老人家都交给徒子徒孙们去左右手互搏去了。 乔爷以前两头忙, media控制mind思想。 如今兵来仍将挡, 环球政经令神伤。 后院曾固若金汤, 如今起火惹黑枪。 我听身边一声响, 乔迷反正伟哥放。 【相关博文】 乔姆斯基批判 Chomsky’s Negative Impact 泥沙龙笔记:再聊乔老爷的递归陷阱 《自然语言是递归的么?》 【置顶:立委科学网博客NLP博文一览(定期更新版)】
个人分类: 立委科普|5067 次阅读|1 个评论
【新智元围脖:我是县长派来的派来的派来的......】
liwei999 2016-1-26 03:43
白: 谁分析一下这个句子:我是县长派来的派来的派来的派来的。 它合法吗?为什么? 黄: 看语法呀。我上课正好用到这个例子。教学用的语法不支持。 我: 这里“的字结构”可以看成 NP(人),如果做替换就可以成为: 我是县长派来的张三派来的李四派来的王五派来的。 如果进一步把替换过的NP中的 可有可无的定语(de- modifiers)去掉,就成为: 我是王五派来的。 不是“人话”的话,就这样循着乔姆斯基的递归魔咒合法化了。 打破这个魔咒的是语感和common sense,那个分析不是人话,“我们不理睬它!”(quotes from《列宁在1918》)。 我们的语感告诉我们这个句子是合法的,但合法性与递归无关。合法性来自于汉语(尤其是口语)中的重叠式(reduplication)的使用,重复n遍的“派来的”,一般是为了强调,或其他语用的理由(结巴、迟疑)。句法上,无论循环几次的重叠式可以被归结成一个单位,基本语义不变(“是...的”是现代汉语 confirmative statement 的蛮典型的句式),只是增加了细微的nuance而已(强调或其他): 我是县长派来的派来的派来的...... 等价于 我是县长派来的。 【置顶:立委科学网博客NLP博文一览(定期更新版)】
个人分类: 立委科普|4351 次阅读|0 个评论
泥沙龙笔记:再聊乔老爷的递归陷阱
热度 1 liwei999 2015-7-2 21:13
咱们可以聊聊 为什么叫 center 递归 , 很多人不做区分。自然语言中 , right branching 递归很常见,也常可以超过三层。说的人 , 听的人,都不感觉是负担。道理就在 , 虽然“左括号”在不确定的位置,但他们都归于统一的右边界。这样一来 就不需要栈(该死的栈!)结构的机制来对付它,有限状态就可以了。乔姆斯基没法拿这个常见的所谓递归来批判有限状态,因此他不得不举 center 递归 作为杀手锏。可问题是,自然语言几乎没有什么 center 递归。 雷 : The man who the woman who had lost all the keys was calling all day finally came 白 : 关于印发关于学习落实关于进一步深化改革的决定的若干意见的通知 …… center recursion 的中文例子 这些是人话吗?亏老乔是语言学祖师爷!乔老爷反复给我们洗脑:这不仅是人话,而且是人话的本质。 这就是牵强附会,登峰造极地牵强附会。 雷 : right branching 递归是线性的, 而 center embedding 不是线性的 这里面就形成了这么个 trap , 信服他的人 , 一个是源于他的权威性 , 另一方面是把常见的右递归当成了支持乔老爷的证据。乔形式上没有误导,因为他是严谨的、聪明的,但实际上达到了误导的效果。这就是“递归教”的 fallacy . 雷 : 这个是 right branching sentence : The dog slept on the doorstep of the house in which it lived. 右递归太常见了 , 而且一点也不牵强。典型的句式是 vp 的嵌套: t o ask sb to beg sb to order sb to … 雷 : 我来理解一下你的意思: center embedding recursive sentences 不存在,或不出三层,所以是 fina te state 的? 不是不存在 , 是如此罕见与牵强,而且也从来不超过三层,除非你是恶作剧,因此它绝非语言本性。 雷 : right branching 不足为道,本来就是线性的。 CFG 的 parsing 在理论上是 cubic ,就是因为这个 center embedding 白 : 这么多计算手段怎么会被 center recursion 憋死 ,自动机加几个计数器就可以线性了,只要计数器不爆表。 拿恶作剧和语言游戏作为语言能力的证据,是乔老爷的最大忽悠。 雷 : 我觉得这是数学家和哲学家的通例:形式上的完美。而我们做 NLU 的,从来就不把这个当真,是不是? 既然最多不过三层 , 那么多层有限状态即可轻松应对,三层 就是 3x , 当然还是线性 雷 : 语言学系的人不到计算机系串门 世界上有人把简单的问题复杂化,递归便是一例。 雷 : 呵呵,因为我们不是数学家出身?我同意你的说法:就只有几层,有方法可以对付,不必搬出递归来。 他那些理论真地是折磨人 , 云山雾罩的。有时候感觉 , 全世界语言学家被他玩得够苦。我还算幸运,我们系比较开通,学句法的时候躲开了乔姆斯基,拿 hpsg 来充数。 hpsg 至少比 gb 接地气,尽管它像个要争宠的小妾,每一个分析都要以乔老爷的主流作为假想对象,反复辩白,妾身清白。 雷 : 加州那边不受什么影响吧,走的是另一个路子,如, cognitive grammar , Fillmore Fillmore 了不起, 但过分细琐. F ramenet 很好的概念 但不实用, 以前写【 语义三巨人 】专门论过。 因为它处于语义和语用之间, 不尴不尬。 雷 : 我专门研究过 framenet ,觉得还是不够细 , 同你的琐碎不是一回事。是每个动词的用法还不够全 , 还有就是 Verbnet 。感觉是虎头蛇尾,后面都是学生做的,真正要用起来还不够全面。 我看法正相反。我也仔细研究过它。以后找机会展开与你辩论。 【相关博文】 乔姆斯基批判 《立委随笔:自然语言是递归的么?》 【 语义三巨人 】 【置顶:立委科学网博客NLP博文一览(定期更新版)】
个人分类: 立委科普|5881 次阅读|1 个评论
Linux下递归改变目录及其子目录属性
zhoufcumt 2013-11-22 10:41
加上-R(大写, regression)参数即可。 比如, 改变文件或目录所属的组, - R 递归式地改变指定目录及其下的所有子目录和文件的属组 chgrp -R gps * 将当前目录及其子目录和文件的属组改为 gps 改变文件或目录的访问权限, -R 递归式地改变指定目录及其下的所有子目录和文件的访问权限 chmod -R 777 * 将当前目录及其子目录和文件的访问权限改为属组下所有人可读,可写,可执行
个人分类: LINUX|27959 次阅读|0 个评论
递归游戏:2阶九连环(九章格设计)
primeacademy 2013-7-9 23:26
  问题:最少用多少个步骤可以将所有的九个圆环从手柄上取下来?
个人分类: 初中数学|6185 次阅读|0 个评论
Nim游戏——小学版(4-6年级)
primeacademy 2013-7-8 00:05
游戏两人:两人游戏 游戏道具 : 两堆黑( 10 颗)白( 15 颗)棋子 . 游戏规则: 1. 自选方法(抓阄、猜叮壳等)确定 A\B (即确定谁是 A ,谁是 B ); 2.A 在两堆棋子中选定一堆,至少选择一颗取走,也可以选择将这一堆全部棋子取走; 3.A 完成之后, B 开始按照 2 的规则取围棋子; 4.A\B 轮流进行上述过程,直到取完所有棋子。 5. 谁取走最后一颗围棋子,谁赢得这一局游戏。 说明: 1. 可以进行多局游戏,三局两胜,五局三胜,七局四胜等; 2. 黑白棋子数目可以改为其它,比如( 15 , 20 )等; 3. 步骤 2 中将取棋子的数目规定为 1-2 颗(或者 1-n 颗),游戏的难度将加大; 4. 这个游戏是传统 Nim 游戏的简化,与 1-3 年级的游戏比较,游戏的复杂性略有提升,但游戏的主要目标还是体验和归纳数学中的“递归”思想 . 通常,在第一局游戏接近尾声的时候,很容易发现最简单的获胜格局,再利用游戏规则发现递归方向,即可找到游戏的窍门 .
个人分类: 小学数学|2734 次阅读|0 个评论
数学递归游戏:兄弟连(九章格命名)
primeacademy 2013-6-30 23:20
你能将细绳从装置上解下来吗?不准剪断细绳。 维基百科中将这个在游戏作为连接为中文九连环的英文版本内容,其实是不完全恰当的。实际上,这个装置不仅与九连环有联系,它也可以解释为汉诺塔的另一个版本(详情在后续博文中介绍),十分有趣。 因为其名称在各国很不一致,在这里,我们尝试以其内涵的递归意义和形态,将其命名为“兄弟连(Band of brothers)”。
个人分类: 数学文化|4131 次阅读|0 个评论
Nim游戏——小学版(1-3年级)
primeacademy 2013-6-27 15:15
游戏两人:两人游戏 游戏规则: 1. 自选方法(抓阄、猜叮壳等)确定 A\B (即确定谁是 A ,谁是 B ); 2.A 在 1 和 2 之间选择一个数,大声说出来; 3.B 在 A 说出来的数字基础上加 1 或加 2 ,把结果大声说出来; 4.A 在 B 说出来的数字基础上继续加 1 或加 2 ,把结果大声说出来; 5.A\B 轮流进行上述过程,直到有人说出 21 。 6. 按上面的规则,谁先说出 21 ,谁赢得这一局游戏。 说明: 1. 可以进行多局游戏,三局两胜,五局三胜,七局四胜等; 2. 数字“ 21 ”可以改为其它数字,比如 30 , 25 等; 3. 步骤 3 、 4 中的“加 1 或加 2 ”可以改为“加 1 或加 2 或加 3 ”; 4. 这个游戏主要揭示数学中的“递归”思想。在上述规则下,人们在第一局游戏接近尾声的时候,很容易发现,如果自己说出了 18 ,则对方无论怎样选择,自己都一定取胜,但这只是“数学式”思考的第一步,如果意识到,这个发现已经将“ 21 游戏”递归为“ 18 游戏”,于是,自然的问题是“ 18 游戏”还可以继续向着“小规模”的方向递归吗?不难知道,回答当然是肯定的,于是,“ 18 游戏”递归为“ 15 游戏”,“ 15 游戏”递归为“ 12 游戏”, ... ,最后,递归为“ 3 游戏”,原来谁先说谁输!这就是“递归”思想的作用! Nim 游戏起源于中国古代的“抓三堆游戏”,有着丰富的数学内涵,以上的形式是这个游戏最简单的一个变形,我们将在后续博文中陆续介绍其它较复杂的一般形式。
个人分类: 小学数学|3187 次阅读|0 个评论
风与帆的递归较量--议论科研管理一现象
热度 22 tangchangjie 2011-10-12 14:43
金风送爽,带来了秋粮丰收的消息,也带来几分秋后算账的萧瑟,因为,对若干单位,又是一年职称评定时。    今年又亏了 。 一位远方的“前学生”(不是钱学森)朋友来信,抱怨所在的学校提高了职称考核标准,原以为按去年规矩,将问题不大,殊不知,关于考核项目的权重规则变了,今年比去年更加看重SCI而轻EI;看重纵向项目而轻横向项目;他自己的成果中,SCI少 而EI多,纵向项目少 而横向项目多;秋后一算,哎,今年又亏了,处于晋升临界区间,等待结果等得郁闷极了。郁闷之余,想模仿屈原之《问天》来“问风”,问SCI之风,问标准提高之风,问风从何方来,风向何方去,还从《离骚》改出一句“路漫漫其修远兮,吾将上下而求风”。 对该单位科研和晋升政策,没有调查研究,没有发言权。征得朋友同意,就事情和心态写成这篇博文。    帆船赛的风向不以运动员意志为转移 。在奥运会的帆船竞赛中,竞赛水域的风向受大自然客观规律制约, 不以运动员、裁判员和拉拉队的主观意志为转移。(在科幻小说中,作弊分子可在水域附近用气象武器制造高低压,从而干预风向,这至少在近十年内还只是科幻)。但运动员可以调整自己的风帆,顺应风向和潮流。记得中学时候,做过一道物理竞赛题,在河流中,巧妙地调整风帆,在局部上用非直线的航迹,达到宏观上的不顺风不顺水的行驶。(记不清具体题目和时间了,请博友指正)。       社会潮流不以个人意志为转移 。辛亥革命之武昌起义前,多次起义虽然失败,但血染的长街使共和观念渐入人心,武昌首义时,若干个偶然的和突发的事件叠加之下,群龙无首的士兵为了生存揭竿而起,只有不到一夜的准备时间,比起陈胜吴广在大泽乡借鱼腹标语造舆论来,显得更加仓猝,尽管仓猝,但完成了推翻2000年封建专制的关键一击!   冥冥中,是什么起了作用?是潮流,是历史潮流!历史潮流是只能顺,不能逆,顺之则昌,逆之则亡。    风与帆之多层递归较量 。类似于帆船竞赛中调整风帆,这里有多个层次的风向和风帆的调整。用n表示层次,例如n=0是社会,n=1是省部,n=2是学校,n=3是学院….   第n层的科研单位 要生存、要发展、要和同行竞争,要向上级负责,要向群众交代,其科研管理策略只能跟着第1、2..、以及 n-1层的风向走,作些微调,突出本单位的特色,构成第n层的风帆,包括管理政策、奖励方法,考核标准。对上层的风,它是风帆;但摇身一变,它又是第n层的阵风。   仔细考察,大致有下列要点(欢迎补充):    (a) 第n层风帆变身第n层阵风,它又指导下一层的风帆。这是目前科技管理中客观存在的递归现象。    (b)粗观之,似乎被管理末端是教师,实不尽然,处于第m层的教师还可刮起第m层风,对第m+1层的课题小组管理,而课题小组还可设政策对研究生进行考核和奖励(第m+2层)。   (c)学校学院科研单位的职称评审中的SCI之风是从第0层(社会,国际国内科技环境)继承来的.不以学校学院领导的意志为转移的。   (d)第 k层风向可以结合本单位的特色,但也可能有部分偏颇。游戏规则的更改,应该在游戏之先,例如一年之前告知公众。我那位在远方的前学生,抱怨的也许不是规则的改变,而是抱怨一边游戏,一边修改规则(这常可能塞进私货)。       路漫漫其修远兮,运动员应专注而求己 。回议远方的“前学生”朋友,他问“风从何方来,风向何方去”,上面关于风与帆之多层递归议论表明,风从世界来,风向世界去,所以,无“骚”可“离”,更不必学屈原之汨罗行为。   这位朋友现“处于晋升临界区间”,现在还有希望,但需明白, 临界点 有个特色, 若成功了,是差一点就失败, 无傲可骄;若失败了,也是差一点就成功,不要气馁 。   作为过来人,而今在岸上,但曾经在水中,体会过突遇标准提高的那种难过的郁闷,理解职称之路之漫漫和修远,但驾船在途中而“上下求风”不解近忧,求风之说,诸葛亮不信,周瑜也不信。生活总要继续,帆船还要前进,在风向多变的帆船竞赛中,顺应潮流,结合自己的特点,制定适当的科研计划,今年SCI少了一点,明年就多做一点,“求风不如求己”也许比说几句传统的安慰话实在。 首先要在大风 中生存,在潮流中发展。 某一天,当上了第n层的科研的负责人,或许能顺应潮流,刮起一股第n层的局部漩风;或许能施展独到见解,做个不再跟风的带头人,撑起一片抵挡前面(n-1)层风的墙,就像南方某大学一样,这不但要眼光、要胆识,要有失败的准备,还要有机遇。 相关博文(研究生导师系列) 导师的面子,学生的胆子、路子和帽子 研究生导师的“两怕”及避防体会 急用先学 vs 厚积薄发 : 两种不同风格的讨论班 新导师首次招收多少研究生 名山、名师与高徒 科研管理中的风与帆的递归较量 其它系列博文的入口 唐常杰博客主页 科学博客主页
个人分类: 教学科研|13142 次阅读|53 个评论
类型系统 和unification/semi-unification算法-2
qizhwei 2011-7-18 06:06
上次说到 : lambda x,y,z : x(y(z)) , 其对应的类型是什么呢? 这里面的 z 可以看作一个普通变量(也可能是一个函数), y 和 x 肯定是一个函数变量。 假定 z 的类型是 c ,则 y(z) 的类型是 a , 那么 y 的类型为 c-a , 则 y(z) 作为 x 函数的参数,假定 x(y(z)) 的类型为 b ,那么 x 的类型为: a-b , 这里 a 为参数 y(z) 的类型, b 为 x(y(z)) 的类型, 那么整个函数的类型是输入 x : a-b,y:c-a,z:c 三个变量的类型,产生为类型为 b 的结果,则该函数类型为 (( a-b ) * ( c-a ) *c ) - b 上面这个过程没有用到 unification 的算法,是从最里面开始倒推类型。对于自动化算法,其原理是一样的,只不过预先设置了类型变量,然后用等价替换来代替。例如,对于 y(z) 的类型推理,对于 y 和 z 各产生一个类型变量,例如 m 和 n ,则对于函数作用 y(z) 的表达式,则产生一个类型变量 k , 那么现在有 y:m, z:n, y(z);k ,则对于 y(z), 有如下等式成立: m = n-k, 因为 y 作为一个函数,输入一个 n 的参数,得到一个 k 的结果,所以 y 的类型 m 应该等价于 n-k 。 由此反复引用如上法则,则可以推导出所有变量的类型。 Unification 的算法有两类,一类是简单的变量替换法( Hindley-Milner 算法,简称 HM 算法 ),一类是 constraint/solve 分离的方法(以 Wand 算法为代表 )。算法本身不是很复杂,但比较难写,就省略了。 这些算法都能处理前面提到的多态和高阶函数的类型,并且能够解决递归函数的类型,例如前面提到 foo = lambda x : x(x) 这个函数类型是 (((a-b)-b)-b) ,其中( a = a-b ) , 所以可以写成 a-b 的形式,采用 a-b 代替 a ,也可以写成 (a-b)-b 等一系列无穷循环的形式,比较好的写法是 ((a-b as a ) -b, Ocaml 采用这种写法 ) 。 但 g = foo(foo) 是没有类型的,采用一个循环检测的技巧,可以把这种没有类型的函数找出来。如果你能理解 Unification 算法,可以针对这两个例子,看看如何推导他们的类型。 那么 Unification 算法有什么缺陷呢? 不能处理什么情况呢? 在类型系统里面有一个不动点算子,例如: list = fix(x) : unit+x*list, 这里定义了一个递归列表 list, 要么为空 unit ,那么为 1 个元素 x ,链接上一个列表。 通过这种构造方法,可以构造一个无穷的递归列表。如果 x 为一个普通类型( Monomorphic )的函数,则采用 unification 算法可以推出类型,如果允许为多态类型( polymorphic ),则没有一个确定算法来推导这个类型,在理论上也称为 Microft-Milner 类型系统,(简称 MM 类型系统), Unification 算法一定会终止,但 MM 类型系统的推理算法不一定终止,所以成为 semi-unification 算法。在实践中基本上都能终止,所以在一些类型推理里面还可以使用。不过现实的语言不大有这种复杂的类型,一般的 c/c++/java 采用 unification 算法就够了。对于一些比较偏理论的函数式语言例如 ocaml ,一般采用 unification 的变体。随着对 cps 计算风格的流行,说不定需要这种能够处理多态的不动点类型。关于 semi-unification 算法的推导,下次再讲。 参考文献: Ian Grant , Hindley-Milner Type Inference , http://ian-grant.net/hm/hindley-milner.pdf 。 这个总结不错,并提供了源代码 M. Wand. A simple algorithm and proof for type inference. Fundamenta Informaticae, 10:115–122, 1987.
个人分类: 学术探讨|5759 次阅读|0 个评论
递归梦的判定性与图灵停机问题--盗梦空间科普札记之三
热度 7 tangchangjie 2010-11-3 11:08
盗梦空间科普札记之三: 递归梦的判定性与图灵停机问题    上文 盗梦空间科普札记之二: 用科学家的目光看《盗梦空间》 议论了思想植入问题。本文试图通俗地描述盗梦空间中的江湖险恶,想说明“递归梦是否停止”这一问题是不可判定的,设计中稍有不慎(如上篇博文第25条评论指出的Bug,附录中的C语言程序没有考虑边界条件),递归梦就是不归路。 为了区别现实与电影,先考察: 1 递归梦与连续梦 人真的会做嵌套梦吗? 在上篇博文的评论第20条,游客xuesnow 给出了自己的体验:“如果自己在梦中梦到自己醒了,而且醒了两次。就是醒来一次,其实还在梦里,再醒来了一次,还是在梦里。最后醒来,头痛,看到了现实的世界。这是不是N=3的情况?” 问了一下,好多人都有过类似体验,大多发生在睡得不太深沉时,例如夏天午睡,或紧张思索科学问题不得其解时,迷迷糊糊,好像醒过几次,也有人在深层次的梦中憋尿时,会醒多次,总睁不开眼,等等。 这里可能有多种类型: (1) {(A梦)(B梦)(C梦)},是连续梦,好像连续电视剧; (2) {A梦 } ,是递归梦,属于尾递归; (3) { A梦上集 A梦下集 },是递归梦,属于中递归。可能中间递归消耗能量比较多,较多体验者报告醒后头痛、昏沉; (4) {A梦 } ,是递归-连续 混合梦。 …..,和可能还有其他类型.   作为调侃,给一个 基于内容的 梦型区别 方法:递归梦(3)中,C梦完后,会回到B梦下集,B梦完后,会回到A梦下集,做梦人可能记得有明显的(像计算机程序)递归栈; 而在情况(2),做梦人已经记不清楚,需仪器记录后用模式识别等技术。这就引出了下面的:    2 一个新的模式识别课题 。对上述问题,有兴趣的研究者可借用仪器,先记录下脑电波数据流,然后用数据流挖掘的方法,如 挖掘聚类、分类、关联、干预,等等, 找出其中的模式或梦类的关系;特别是:从一个梦退出,返回上一层梦,或链接下一集梦的流模式,进行深入研究。估计是比语音识别还难的问题,有兴趣的不妨试试,是否能得到基金支持,那就难说了。 下面的讨论是基于《盗梦空间》平台,将戏说戏,将戏说科学,有戏说,也有科学。 3 后续讨论的背景知识 。   后续讨论稍微有点复杂,尽量由浅入深,压低到高中二年级数学题的难度。拟用通俗的方式,模仿了教科书 中关于图灵机停机问题的递归法证明过程;透过证明,明眼人能看得见 康托 (Georg Cantor,1845-1918)在证明“实数不可数”时用的 对角线方法 ,其技术要点是“反身+否定”;这里只不过借用读者从前篇博文得到的本体知识和电影故事的启发,增加了点趣味性和通俗性。 4 本文主要结论 为简捷描述思路,需要一些(类似于教科书文献 的)符号和术语。   用M表示梦的编码(可理解为源程序),s是梦中要处理的字符串(它描述某对象),M,s称为一个“梦--串对”。M(s)表示梦中处理s, 而P表示一个通用的梦 串对判定程序。    本文主要结论是:    命题 递归梦是不可判定的,即不可能设计这样一个通用程序P,它能检查一切的梦串对M,s对应的那个梦是否会醒过来 。    思路: 用反证法,假定这样的P存在。命题的难点和突破点都在“ 一切 ”二字,既然P对 一切 的梦串对M,s作出判定,那么,对 特殊 的梦串对也能判定。 于是,设计了一个 特殊 的 梦串对M,s, 在梦中调用程序P,P又调用梦串对M,s为参数,实现了 梦里用程序处理梦 ,递归,最后推出了矛盾。证明方法类似于MIT 教科书 P.139 关于停机问题的第二个证明,即用递归方法的证明。     还需对符号做些说明:   P(M,s)=真,表示P分析梦串对的结论是:在梦M中去处理对象s ,一定会醒过来;   P(M,s)=假,表示P分析梦串对的结论是:在梦M中去处理对象s ,永不会醒过来,相当于进入盗梦空间的迷失域。      有了这些准备,下面开始证明 。:(如看起困难,直接跳到 第5小节)    证明 用反证法:假定有这样一个程序P,对任意的梦-串对M,s, P不会死循环,即能在有限步后得出结果P(M,s),结果值在集合{ture,false}中。    (1) 设计一个嵌套梦 ,其C语言程序如下,先给出语句,再解释: bool M ( s) { Do-some-thing( ); //这里做一些平凡的非递归的梦境;   OK = ! P (M,s); // 据对P的假设,P在{true,false}中,而 !表Not(否定)    // 直观上借用了百姓说法,梦是反的 return OK; } 程序经仔细检查,除了假设满足条件的P存在以外,其他部位没有问题。 (    (2 )导出矛盾 其实大功已经告成,就在下列矛盾中:   如果在P的参数中(相当于二层梦)的M ( s)= 真; 则OK= !P (M,s)=假, 推出最后结果M ( s)= 假;   如果在P的参数中(相当于二层梦)的M ( s)= 假; 则OK= !P (M,s)=真, 推出最后结果M ( s)= 真; 真个是“假作真时,真亦假”, 矛盾了。   (3) 矛盾根源: 都是P惹的祸 。“P有限步后会出结果”是构造这个程序的基础,避免这个矛盾的唯一出路是P (M,s)无限循环,根本不出结果;换言之, 满足条件的通用程序P不存在 ;   结论 不可能设计这样一个通用程序P,不是程序员的水平问题,而是本质上的不可能。 明眼人立即看出,这是 图灵机停机问题 在盗梦空间(递归类程序集合)上的一个投影。 ( 4)典型问题答疑, 为易理解,简答博友几个典型问题    (a) 评论8和11 :在梦M (s)中调用P(M.s).为什么看起不像传统的递归? 答 :设F是反编译器(例如,把EXE变成汇编源程序),P(M.s)=P(F(M),s),看起就是递归了。在教科书的中译本 P136-139中,通过打印程序自身的过程 SELF实现,SELF可看成是这个反编译器F;这部分内容不太难,但稍有点长。Sipser, Michael 的窍门在于,在语法上,利用“P有限步后会出结果”回避了句法(syntactic)上的递归(也就不需要深度控制),但在语义上是递归的。   (b) 评论8 :把此文的程序中的P去掉,在 评论8 给出了那个程序及相关问题。    答: 评论8 构造的M(...! M(s)...)不合理,M(s)是否终止尚未判定,如果没有深度控制和初始值,运行时堆栈上会压入一系列否定算子,直到栈溢出死机;而如果有递归深度控制与初始值,则根据深度的奇偶性返回值,导不出矛盾。我们的,或文献 上的程序,加了P, 由P的通用性,知道P在有限步后,一定返回值 True 或False ,程序总体构造上就没有问题。     5 严重的后果 :由于不可能设计程序来检查 递归梦(其实,它也是一个程序);盗梦者所设计的梦到底是梦幻般的的旅游还是不归路,就成问题了。 通俗和严格常常难以两全,上述证明(或说明)的重点在思路和框架,有若干细节,写出来反而更难懂,欢迎内行批评指正。 到此,我们可以说,递归梦很美,盗梦空间有风险,入梦探险需谨慎。 参考文献 Material: Sipser, Michael (@MIT), Introduction to the Theory of Computation. PWS Publishing Company, 1997 ,机械工业出版社出版,2002。 ) Michael Sipser (麻省理工学院),计算理论导引(第二版), 中译本 , 唐常杰 陈鹏 向勇 刘齐宏 译,机械工业出版社出版,2006.7 相关博文 :   盗梦空间科普札记之一: 梦里乾坤递归深,醒来可知在哪层 ? 盗梦空间科普札记之二: 用科学家的目光看电影 ; 盗梦空间科普札记之三: 递归梦的判定性与图灵机停机问题 ; 盗梦空间科普札记之四: 中美学生思维差异、RSA蓝军以及盗梦算法争议与实验 可计算理论是门修养课-研教散记11 (去年的博文);   知识的共创和共享-研教散记(4) 可在出版社网址下载课程的PPT,1600页面)
个人分类: 科普札记|16322 次阅读|22 个评论
《立委随笔:自然语言是递归的么?》
热度 2 liwei999 2010-2-11 02:47
mirror 说: ”括号可以用几重?立委作为计算机的半拉专家,应该知道是有限的。问题是限在几重上。…… 比如{[最(伟光正的)党]领导的}是一个深度的例子。 没有抽象化,也就没有学问了。问题不在于可不可以。问题是出自一个什么样的考虑、取舍,定下的如此规矩。” 由镜子所说引申去:自然语言是递归的么? (92201) Posted by: liwei999 Date: June 17, 2007 05:17PM 很多句法学家认为,自然语言的结构具有递归性 (recursion)。递归的表现是结构的嵌套,这就好像我们数学表达式中使用括号一样,理论上是括号的嵌套使用是无限的(无法预先规定嵌套的层数)。可是,语言的制约不仅仅是句法,还有语用上的限制。 自然语言中,括号的有限使用是语用学(pragmatics)的常识和可以观察到的语言现实。因为中间嵌套太深,不利于交流,也会超出人的短期记忆的承受范围。 中间嵌套的例子有主句套从句:主句的主语(S)和做谓语的动词短语(VP)中间又插入一个定语从句,修饰主句的主语: A guy who knows a girl also knows another girl. 其结构是: VP] 然而,右嵌套可以很深,在英语,这种例子屡见不鲜。 [… ]]]]] 例如: I know a guy, who knows a girl, who knows another guy, who knows …… 其结构是: ]]]] 再如:有一类英语动词(a verb subcategy),其动词短语要求嵌套另一个动词短语作为其宾语补足语,如果被嵌套的动词短语恰好也是同类动词,这种嵌套就可以循环下去。 这类动词有:expect, tell, ask, force, … VP 的句型是:VP – (V是这类动词,NP 是名词短语做宾语) 譬如: I expected John to finish the homework. I expected John to tell Mary to finish the homework. I expected John to tell Mary to ask her students to finish the homework. …… 其结构是: ]]]] 由于语言结构的recursive nature, 受到”乔木司机“的形式语言理论的不良影响,很长一段时间,计算语言学界推崇能够反映recursion的上下文无关语法(CFG, Context Free Grammar),排斥有限状态语法(FSG, Finite State Grammar),认为后者不适合自然语言parsing。可是,研制实用系统的人对简单而高效的FSG情有独衷。 FSG 比起 CFG 不够 powerful,为什么也可以成功运用在自然语言的parsing上呢? 诀窍就在,可以把很多个FSG叠加起来用(cascaded finite state device),一层一层地由里往外退括号。由于语用学的制约,人类实际的语言现象,表达中间recursion的括号数量是很有限的(很少超过三层,形象地说,只要大中小三种括号就够用了),而边缘嵌套难不住FSG (其实实际语料中边缘嵌套也很少超过五层),所以线性叠加完全可行。 【置顶:立委科学网博客NLP博文一览(定期更新版)】
个人分类: 立委科普|7623 次阅读|4 个评论
解惑是一种基本功 --研教散记(5)
tangchangjie 2009-8-7 11:26
解惑是一种基本功 --研教散记5 (唐常杰) 把艰深问题讲明白,把大道理讲得容易为人接受,不仅仅是课堂教学艺术,也是搞研究、写论文、作科普和思想工作的基本功。这种基本功称为解惑。解惑是寻求合作的技能,是通过评审的签证,是传道授业的微分。 解惑是寻求合作的技能 。现代科学是合作的科学,牛顿、达尔文放单飞的时代一去不复返了。一般人也不能妄自比于牛、达(因为时人莫之许也)。随手找几本高档的科技杂志,只有一个作者的论文渺若晨星;只有一个人的基金项目很难批准。如果你有了一个雄心规划,如果你有了深邃思想,如果你有了一个关于论文的 good idea, 但是,如果你不能把深邃的思想讲明白,很难动员同事同学和你去共赴一个不明不白的磨难。嘤其鸣也 求其友声。鸣,是一种技能,若鸣声不清,会求而无应。 解惑是通过评审的签证 。论文和项目申请都要过评审关。曾经有种错误的概念,似乎把论文写得不容易懂,就容易蒙混过关被录用。那只是上个世纪偶尔发生的事。现在的评审专家,长者阅文成百上千,新秀少有妄自菲薄,忙中浏览,居高临下。对难以理解的论文,如果作者尚无较高学术信誉,一般不会再读十遍(实在太忙),多半会评为表达不清,难于理解;两百多年前,伽罗华关于五次以上代数方程公式解的天才研究,因为 完全不能理解 被埋没了 38 年。史海勾沉,重翻这段公案,有两种可能,或者是问题真的太艰深,他像外星使者来到地球上;或者是他不善于把艰深的道理表达浅显,解惑功夫不到位。 解惑是传道授业的微分 。相对宏观的传道和授业,是通过一系列相对微观的解惑组成的。浪漫一点,展开想象:传道 = ( 解惑 )dt ;等式两边求微分: d( 传道 )= (解惑 )dt ,证毕。 因为传道授业还有其他环节,如实验、实践,等等,把微分换为偏微分也许更确切。 把简单问题讲玄惶,是制惑, 制小惑不需太多技巧,当然也有难度高的,如徐福之忽悠秦始皇,那可是个制惑系统工程;把艰深问题讲浅,是解惑,才是真本事。如果听众倾听两小时后,更糊涂了,则有两种可能:或者是学生基础太差,或者是教师备课不到位,教学方法需要改进。 网上有很多解惑的方法,不再重复,补充一些。表述中尽量避开专业术语,让非计算机专业的朋友看懂: 1, 对问题的深刻理解。 真正理解弄懂了 ,才能讲简单,很多形式化描述的定义定理,读起来很难懂,当事人要揭开形式化外衣,抓出其背后的简单的想法或原型。讨论班上曾经一起读过一篇关于 Web 数据挖掘中 Top-K 近似查询的论文,文中较多的定义定理把问题搞得比较复杂。戳穿表层纸,其思想可比喻为:多数情况下,体操全能冠军至少有一项单项冠军,论文的新方法相当于在所有的单项冠军中搜索全能冠军,自然较快较准。听众一下就豁然了。遗憾的是,论文不用这样的比喻,不讲这个思想(可能是因篇幅紧张,情有可原),承担报告的同学花了一周时间来苦读,才把这层纸戳穿。 2 从简单到复杂。 这是认知规律。 人们喜欢用已知的解释未知的,所谓察今知古,察己知人,如果问题是多元的, 讲完一元二元的,就可能可点通心有灵犀者。 3. 善讲思想,善用比喻,让深者见深,浅者见浅 。 笔者曾经写过一本 计算机反病毒技术 , 获新闻出版总署 1992 年全国优秀科技图书二等奖(当年有两个二等奖),记得在领奖回程,出租车师傅问,计算机怎么会怕病毒? 解释 1 :计算机病毒是一种包含了复制自身指令的指令,师傅摇摇头,太绕了,什么指令的指令 ., 惑而未解。 解释 2 ,一个发通知的例子,往下一车号传,今天下午两点钟开会。 往下传就是复制指令,只要执行这个指令,就会复制这个命令。两点钟是病毒的等待的时机;如果把开会换成堵车,就成了消极代码或破坏性代码。师傅懂了,而且是从哲理的层次上理解的;当然,专业人员立刻会联系到艰深的反病毒程序的汇编代码(遥想当年,工具不多,常用 debug 写),那是深者见深。如果深者和浅者都觉得自己理解了,这次科普就成功了。 比喻有三项基本原则,( a ),喻例应比被解释问题简单,( b )喻例在自然世界、生活常识中,或在学过的知识中,这需要善于观察; (c) 事不同而理同,不牵强,才能释难为易。 再举几个能化深为浅,释难为易的例子。 递归理论不是很简单的理论,计算理论导引第 6 章为解释一些概念颇费了些笔墨。但下面的例子只需要哈哈一笑。 例 1 ,如果要求小孩讲个长一点的故事,小孩可能会采用递归技术,描述老和尚给小和尚讲的故事, C- 语言程序如下: Void story ( ) { printf( 从前有个庙,庙里有个老和尚,老和尚给小和尚讲故事 , 讲的故事是: ) ; story( ); // 函数自己调用自己,没有递归深度控制,这正是孩子们的兴奋点 } 看,小朋友也能懂能用递归技术,而且还会用有限描述无限。 例 2 (循环调用和递归谜局) 庄生梦蝶。庄子梦中化为蝴蝶 , 梦醒之后,庄子问 , 到底是蝴蝶做梦化为庄周 , 还是庄周做梦化为蝴蝶 . (梦里面做梦,递归梦 )。 还能把听众讲懂,有趣,且不失高雅。 (注:典出 庄子 - 齐物论之庄子蝶梦 : 昔者庄周梦为蝴蝶 , 栩栩然蝴蝶也 , 自喻适志与 , 不知周也。俄然觉 , 则戚戚然周也。不知周之梦为蝴蝶与 , 蝴蝶之梦为周与 ? 周与蝴蝶则必有分矣。此之谓物化。) 例 3 (堆栈技术或下推机)不要盲目夸奖第一个想到堆栈技术的人有多么高明,幼儿园小朋友都会用;小朋友午睡时,都知道先脱的衣物放下面,后脱的衣物放上面,一层压一层,起床时,后脱的先穿。 从数据结构和算法的术语来解释(小朋友就不懂了),脱衣时压栈( Push ),穿衣时弹栈( Pop ) , 自然实现了后脱的先穿。由于只需关注栈顶,只需要一个指针,从计算的空间复杂度观点看, 只需要对数空间,所以小朋友的智力完全能够处理。(用行话描述,堆栈技术需要较少的计算资源)。 只要仔细观察,事不同而理同的对象有很多,例如,计算机科学中,讲多传感器和数据融合,可采用川菜的色香味(对应传感器:眼鼻舌,有兴趣的还可建立数学模型定量描述);讲 多传感器的干预技术,可用麻辣烫三种感受的制约;数据挖掘中用到过卷积,讲卷积的直观意义,可计算病人打点滴或服药后体内药物残量,等等。在研教散记( 4 )中共享出几个 PPT ,可以找到更多的例子。 综上,在项目申请,论文草稿、或课程中,常有深邃的思想(亮点要点)。这些亮点或者不容易讲好,或者不容易被人接受,或者需要推导十几黑板,或者准备几十页 PPT 。此时不妨想想,能否找一个合适的,贴切的比喻,事不同而哲理同。行文或作报告时,先讲思想,后作证明,或许可以一笑解难题。 以上属启发性知识( Heuristic Knowledge ) , 如散记( 1 )中已说,仅供参考。 点此回此搏主顶层
个人分类: 教学科研|7163 次阅读|1 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-19 12:32

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部