当前位置: 首页 > news >正文

盗梦空间科普札记之一:梦里乾坤嵌套深,醒来可知在哪层?

盗梦空间科普札记之一:梦里乾坤嵌套深,醒来可知在哪层?   (唐常杰)


     (这是发在科学博客上一个系列博文的1/4,涉及到递归算法,第四篇涉及到图灵机停机问题,稍难一些)

   上周五晚上,和几位中学生忘年交客人一起看了电影《盗梦空间》。孩子们大呼精彩,边看边议;而我在云里梦里,半懂不懂。惭愧,快out或已out了,看来,知识更新速度在加快,连看电影这样的简单娱乐,也和此博客的开户艺名一样,要“学到老”了。

    下面的图(修女托盘,分形昆虫和周杰伦之递归),先留点悬念,稍后解释。


2010111155912258.jpg

  向孩子们请教了令人迷失的细节,原来,他们先在网上或朋友那里了解了情节框架,记住了人物姓名,了解了梦里做梦的结构化知识和游戏规则,打印了要点(叹服这一代的IT能力);用如今的Web2.0中的时髦术语描述,孩子们先有了一个关于盗梦空间的“本体”,(ontology,这将在下篇博文“思想植入,托梦、转基因与本体”中解释)因而易理解故事情节。

1  故事情节在潜思维中发酵


   过去以为,玄幻者,娱乐也;常处之以“相逢开口笑,过后不思量“。周日早起,却忽然有了感觉;也许是在睡眠中的潜思维发酵,在梦中把故事情节和孩子们给我的解释串了起来,实现了顿悟。基于两个课程PPT(计算理论递归图灵机和语义WEB)中的几页通俗解释,利用周日,快草了这篇科普博文。本文重点不在复述电影情节,而是议论哪些笔者能够解释的科普亮点。
  为把道理讲得浅显有趣,从远到近,选了一些轮廓或情节;太长,暂分两篇:
      (a) 梦里乾坤嵌套深,醒来可知在哪层----科普札记之一,本文;
      (b) 思想植入与托梦、转基因与本体----科普札记之二。(稍后发出)

2  故事的基本框架:梦里做梦 + 强制托梦.
   古有庄生梦蝶,梦里做梦不算新奇。曾经编导过《蝙蝠侠前传》的导演克里斯托的在强制托梦方面表现了大胆的想象力和程序设计的周密性,嵌套了6层梦。为解释梦之递归,先给出一些 今、古、外、中 的有趣的递归对象。

3  幼儿园的孩子也会玩递归  (今)
  小孩子大都知道并复述过著名的“老和尚讲故事”:“从前有个庙,庙里有个老和尚,老和尚给小和尚讲故事,讲的故事是:从前有个庙,庙里有个老和尚,老和尚给小和尚讲故事,讲的什么故事呢?故事是……”
  写成C语言程序:
Void  Story ( )
{
 printf(“从前有个庙,庙里有个老和尚,老和尚给小和尚讲故事, \r\n”);
 printf(“讲的什么故事呢?故事是:\r\n”);
 Story( );
}
  这里没有递归深度控制,执行程序,将在屏幕上显示出(有始无终的)故事文本,直到堆栈溢出死机或程序出错并报告:”Stack oveflow”。这里的“有始无终”,正是小孩子的兴奋点。
  《一千零一夜》中共有264个故事,有的故事是以嵌套形式表达的,从第N+1层结束时,回到第N层故事环境。

4 图片中套图片 ( 外,国外或境外)
   先看上面的图片,后做解释。

   让小孩看上左图讲故事,可能会这样说:“有个修女托了一个盘子,托的什么盘子呢?(that)盘上有个修女托了一个盘子,托的什么盘子呢?(that) 盘上有个……”。
    用英语的that从句来表达, N口气读不完;
   60岁以上的人可能会联想起了1950年代的小学一年级语文书封面 “开学了”。
   “那本书的封面上有一个小孩子拿着书,拿的什么书呢?那本书的封面有一个小孩子拿着书,拿的什么书呢….”,又递归了。
   右边“图中周杰伦左后墙上挂了一张图,挂的什么图呢?(那张)图中周杰伦左后墙上挂了一张图,.....”,递归了。谢谢博友  zhenjiaolin 提供了此图。
    而中图是分形,以递归为技术要点;科学网上有很多很多专家的精彩博文,不再赘述。
   类似的还有镜子里面照镜子,电影里面放电影,故事里面讲故事。都能激发孩子们的好奇、遐思和思索。

 5  诺贝尔物理奖得主的递归诗 (外)
 I wonder why,
 I wonder why,
 I wonder why I wonder why,
 I wonder why I wonder why  I wonder why I wonder why.
 ………
        (By  Richard Feynman  1965诺贝尔物理奖得主,)
   翻译成中文:
       我好奇,/我好奇,/我好奇我为什么会好奇,/
       我好奇我为什么会好奇那个“我好奇我为什么会好奇
   不愧是诺奖得主,不但有语言美、物理美,还有数学美、递归美。表现了科学家的无穷好奇心和探索精神,言简意赅,不需多说。


6 庄生梦蝶与梦境层次 (古 与 外)
在23个世纪前(战国时代),有点逍遥倾向的思想家庄子就想到了梦里套梦。《齐物论:庄子蝶梦》中有下列段子(先给译文,后给原文

    古文新译:以前庄子做梦变蝴蝶,活灵活现的蝴蝶,那么潇洒那么快活,乐而忘己,忘记自己是庄周。谁知甜蜜的梦容易醒,醒来才知是那个“戚戚然”(心情略带杯具)的庄周。不知到底是庄周做梦变成蝴蝶呢,还是蝴蝶做梦变成了庄周?


原文:“昔者,庄周梦为蝴蝶,栩栩然蝴蝶也,自喻适志与,不知周也。俄然觉,则戚戚然周也。不知周之梦为蝴蝶与,蝴蝶之梦为周与?
  这里,庄子的“觉”即“醒”,有两种可能,
  (a)回到了现实世界,
  (b)从第N+1层梦“醒”回到第 N层梦,还在梦中。


所以,其感觉可能是:

   “梦里身在他乡独漂流醒来爹娘慈爱伴左右”;也可能反过来,是:
   “梦里爹娘慈爱伴左右 醒来身在他乡独漂流”。(念亲恩 之歌词)
怎能不“戚戚然”?。

OK,怎样鉴别梦与非梦呢?
  最近网上热议的、获鲁迅文学奖的
车延高诗作《徐帆》在最后一句给了朴素方法:
      臂上一拧,/  好痛;/ 这才知道:/梦,/ 有时和真的一样.”
《盗梦空间》用戒指鉴别梦与非梦,男主角如带有戒指,则暗示他、也同时暗示观众:此情此景在梦中。这比老子和庄生提倡的“无为”要好一些,但仍有不足,即不能标识梦境层次。
  为梦际旅游安全,笔者冒昧支两招:(a) 换指头带戒子,构造“梦层协议”或“梦层函数”,把五个梦境层次映射到五个指头;(b)纽扣暗示,例如,每进入一层梦,扣一颗纽扣


7 嵌套梦使人犯晕李商隐在《锦瑟》中写到:
      锦瑟无端五十弦,一弦一柱思华年。
庄生晓梦迷蝴蝶,望帝春心托杜鹃
      沧海明月珠有泪,蓝田日暖玉生烟。 此情可待成追忆,只是当时已惘然
如此的缠绵迷离,那么的朦胧惆怅;对比之下,笔者在看盗梦空间时堕入云里梦里,半懂不懂,也不算太out了。


8 不知下篇能否更精彩
     文已太长,疑犹未解,到此,只提出了问题,解释了问题;
     《盗梦空间》中有些什么规则,怎样实现“醒来可知在哪层”呢?

下篇盗梦空间科普札记之二:思想植入与托梦、转基因与本体 准备回答这一问题,请我的中学生忘年交朋友修改把关,已经发出。


相关博文
  盗梦空间科普札记之一:梦里乾坤递归深,醒来可知在哪层?
  盗梦空间科普札记之二:用科学家的目光看电影;
  盗梦空间科普札记之三:递归梦的判定性与图灵机停机问题;
  盗梦空间科普札记之四: 中美学生思维差异、RSA蓝军以及盗梦算法争议与实验9 附录  盗梦空间粗略框架结构的C语言描述:


   仅供熟悉C语言的朋友鉴赏批评。在下文中还会用《盗梦空间》的本体来解释
Main盗梦空间( void)
  {  Dream(0);//从层数为0开始,调用下面的递归梦境函数,就开始电影故事;
  }
其中的递归梦境函数框架如下:
Dream(N) //递归梦境函数
   { ………
    ……..
    Printf(“这是第 %d 层梦境”,N); //明白标注们的层次,不要忽悠了自己
    Dream(N+1); //进入更深一层的梦境,注意参数N上增加了1
    Printf(“现在回到了第 %d 层梦境”,N); //提醒自己,已从下层梦中醒过来
   }  
  为了这里好理解大结构,函数中省略了若干语句,例如跳出的条件等等,将在下文中用本体知识解析。


其它系列博文的入口 -  唐常杰博客主页 -  科学博客主页





相关文章:

  • Mysql+keepalived搭建
  • 用Tomcat和Eclipse开发Servlet程序
  • javascript 检测浏览器类型和版本的代码
  • MVC调试异常--未能将脚本调试器附加到计算机
  • 关于全国软考“ 网络工程师” 证书的备考的建议
  • excel快捷键如下:
  • [置顶] How to compile openjdk 7 in RHEL5
  • Qt Creator 代码自动补全设置
  • 自己写中文分词器之(一)_逆向最大匹配算法的实现
  • centos5.8安装Mysqldb
  • shadow projection
  • STM32学习笔记(5):通用定时器PWM输出
  • 产品经理如何在技术人员面前更有说服力?
  • PHP autoload机制详解
  • linux系统编程之文件与IO:文件描述符、open,close
  • 收藏网友的 源程序下载网
  • 11111111
  • EOS是什么
  • Java 最常见的 200+ 面试题:面试必备
  • JavaScript对象详解
  • Java超时控制的实现
  • js算法-归并排序(merge_sort)
  • leetcode-27. Remove Element
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Mysql优化
  • Terraform入门 - 3. 变更基础设施
  • 关于extract.autodesk.io的一些说明
  • 今年的LC3大会没了?
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 前端路由实现-history
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • zabbix3.2监控linux磁盘IO
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ​Java并发新构件之Exchanger
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (003)SlickEdit Unity的补全
  • (06)Hive——正则表达式
  • (附源码)php投票系统 毕业设计 121500
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (一)基于IDEA的JAVA基础12
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • /etc/fstab 只读无法修改的解决办法
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • []Telit UC864E 拨号上网
  • [C#]winform部署yolov5-onnx模型
  • [C#]无法获取源 https://api.nuge t.org/v3-index存储签名信息解决方法
  • [C++数据结构](31)哈夫曼树,哈夫曼编码与解码
  • [CERC2017]Cumulative Code
  • [CISCN 2023 初赛]go_session
  • [c语言]小课堂 day2