起因
昨日我拿着茶杯想去倒杯水喝,余光看见洗漱间灯未关,然后想要去把洗漱间的灯关了,然后在某一个瞬间,产生了这样一个念头:去洗漱间倒杯水喝。当然,这个念头一闪而逝,我仍然去客厅倒水喝,然后回到卧室放下茶杯后再去洗漱间把灯关掉。真正神奇的是在这个过程中所产生的这个念头。
分析
很神奇,两个完全不同的动作竟然会混合在一起。想想这个念头,似乎是两者的结合体,那么必然会有共同点,或者说是联系。我回想了一下当时头脑中的想法:倒水,我站在茶几旁边倒电水壶中的水;关灯,关灯,似乎没什么可描述的。可这两者究竟是怎么联系起来的?思虑良久,我想了想关灯的应用场景,肯定是从洗漱间走出,才会关灯,那么走出,有以下几种情况:洗完澡,上完厕所,洗完衣服,洗漱完毕。当时为什么灯会是开着的?早上起来洗漱完毕,忘记关灯了。想起洗漱,那么我想到了一个动作,用漱口杯接水。水龙头有点坏,每次接水都要小心一二,所以对用漱口杯接水这个动作印象略深。
在洗漱间用漱口杯接水,在客厅用茶杯接水,简单来说就是在洗漱间接水,在客厅接水,竟然是同一个动作,连做出这个动作时候我的朝向都是大致相同的。这么说似乎还是不太清晰,那么举个例子,去关灯,所需要做的是ABCDEF(A表示走进洗漱间,B表示开灯,C表示接水,D表示洗漱,E表示关灯,F表示走出洗漱间),去客厅接水,所需要做的是GCHI(G表示走进客厅,C表示接水,H表示走出客厅,I表示回到卧室),这两个字符串从事件复杂度以及事件相似性上完美的描述了这两件事,看来我还是略显机智的。当我用和两个字符串替换了这两件事情之后,隐隐出现了一种熟悉的感觉,我想起了KMP(KMP是什么我也不知道 - -!)、求字符串的相似性,求两字符串最长子串。
再回到这两个字符串,最初用来描述这两件事情的是关灯,和接水,那么就是E(ABCDEF)和C(GCHI),在java中,可以说所有对象都是被引用的,即可以认为一个指针指向了一个地址,这个地址存放了这个对象,那么,我或许可以认为E是(ABCDEF)的引用,而C是(GCHI)的引用。同理,(或者说既然两件事情被联系在了一起)那么C也是(ABCDEF)的引用(如果说复杂一点,那么就是C指向的地址存放了一个地址对象,地址对象所指向的地址才是字符串)。先不管这两个事件对象是什么时候创建的,如果把每一件事当成是该事件对象的属性,那么需要根据属性C得到对象(ABCDEF)或者(GCHI),但是,阅历太低的我并不知道哪种语言能根据属性得到该属性的对象的,似乎相似的是数据库查询,但总感觉某个不需要编译的脚本语言应该能做到,但是脚本是解释语言,在运行时候才编译,这个时候还能将新建的类加入应用中吗?或者来个两层,一层负责执行,一层负责创建类,然后不断重启?
然后........
或许还有然后吧。
结论
经过以上分析,我明白了为什么会冒出这么一个神奇的念头。
网友评论