七夕缘起-第2.6.5章-番外-说话聊天带曲奇

七夕缘起-第2.6.5章-番外-说话聊天带曲奇


喜鹊山,喜鹊庙。
“来来来,常常我做的曲奇饼!”小皮端着一盘曲奇饼,摆放在了桌子上。
“小皮啊,你成天不知修炼,净搞这些有的没的。”小艾拿起一块曲奇饼,品尝起来。
“姐姐啊,你这每天辛苦修炼,也没见有什么进步呀……”
“冰冻三尺,非一日之寒,懂不懂……至少我每天是在进步的……”
“哈哈哈哈,不开玩笑了,来,小飞也尝尝。”
小飞只是一直普通的喜鹊,自然不能幻化人形。于是她站在盘子旁边,叼起一块曲奇,慢慢地啄食。
“小皮姐姐,这个曲奇饼确实太美味了!”小飞夸赞道。
三位在一起,吃得其乐融融。

“当当当!”一阵敲门声响起。
小皮说:“不用想,一定是牛郎。”接着她喊到:“请进!”
“嘎吱——”门推开了,果然是牛郎:“两位仙子下午好!”
“来,先尝尝这曲奇饼吧,小皮的手艺,可是不错呢!”小艾对牛郎说。

牛郎来到桌前,入座。正要拿起曲奇,看到了桌上的另一只喜鹊,便问道:“这位是?”
小艾介绍道:“这是小飞。不过小飞不是神仙,不能幻化人形。”接着小艾又对小飞说:
“这是牛郎,也是喜鹊通信计划的总设计师。”
小飞伸出翅膀:“久仰牛郎先生大名!”牛郎也伸出手轻轻握了握小飞的翅膀:“哪里哪里。很高兴认识你。”

寒暄完毕,牛郎拿起一块曲奇饼品尝:“色香味俱全!高手!”
小皮笑道:“别拍马屁了,你这人无事不登三宝殿,赶紧说正事吧!”



牛郎整理了一下思绪,说:“你们不觉得,有时候,聊天聊到一半,然后一被打断,就不知道刚才聊到哪里了吗?”
小皮说:“好像没觉得呀……长这么大,我觉得聊天一直挺正常的,还不至于忘记聊到哪里了吧?”
牛郎说:“那是你聊天的场景过于简单。每次只和一个对象聊天,或者一群人只聊一个话题,自然不会有问题。”
“问题在于,如果你同时与多个人聊不同的内容呢?”
“比如,你可以和小飞聊她的事情,和小艾聊修炼的事情,然后和我聊通信的事情。”
“我敢说,不出几句话,你肯定就聊乱了。”

小皮皱了皱眉头:“怎么可能有这样的场景……这样的聊天,明显是脑子有问题吧……”
牛郎说:“那咱们换个场景。作为神仙,每天来求取帮助的人或者喜鹊,必然不少吧?”
“那你是怎样保证人和事情对应起来的呢?”
小皮说:“好像没人来庙里求神仙呀……”
牛郎有些无语:“你们这神仙,也太悠闲了吧……”

小艾说:“我听说在女娲庙中,会发一张许愿符给香客,如果后来愿望达成,那么要拿着这张许愿符去还愿。”
“那你们想过吗,为什么需要许愿符呢?”牛郎问。
小艾说:“不知道。咱们庙里人少,小事我顺手就给办了,不合理的活办不到的当场就回绝了,所以没搞那么麻烦。”
牛郎说:“那我来分享一下我的看法吧。”



牛郎说:“假如今天有一千位香客来上香许愿。你平均处理一位香客的愿望,要多长时间呢?包括拒绝的。”
小艾说:“一分钟吧。”
牛郎说:“那么,一千分钟约是十六小时,这可是相当于每天要加班一天啊。”
“假如每个香客,都把愿望写到许愿符上,你要处理完一千张许愿符,需要多长时间呢?”

小艾想了想,说:“三分钟吧。你可以认为神仙的一个工作周期大约是一分钟。”
“批量读取许愿符需要一个工作周期,筛选出要实现要拒绝的愿望需要一个工作周期。”
“实现每个愿望都需要一个工作周期,但是,这里可以并行,比如同时去实现删选出的五百个愿望。”

牛郎解释说:“这就是许愿符的第一个作用,将串行事务并行化,从而提高效率。”

“接着,咱们来看下一个问题:如何将每一个愿望,与许愿的香客对应起来。”
“这也很简单了吧,许愿符一式两份,只要将自己手上的符与香客手上的符做对比,一致即可。”
“这里有一个点,很有趣。许愿的人越来越多,一年之后,你手上的许愿符可能达到几万张,如何在几万张许愿符中快速匹配呢?”
小艾说:“一个工作周期,我挨着看一遍就找到了。”

牛郎说:“太慢了。你知道许愿符是有编号的吧?为了解释方便,咱们假定有100张符,现在香客手里拿的是80号。”
“咱们先把手中的100张符按顺序排好。这个事情是一劳永逸的。”
“80比50大,所以一分为二,一定在下面的那一摞。”
“80比75大,所以把下面那一摞在一分为二,80还是在一摞。”
“以此类推,每次一分为二,确定80在上面还是下面。在第5次时,就可以找到80。”
“100小于2的7次方,即7次以内,可以找到任何一张符。我称之为‘二分查找法’。”
“而你之前的找法,可能平均要50次左右了。”

“咱们拓展一下,如果有十亿张符,十亿大约是2的30次方左右,也就是30次之内,一定可以找到结果。”
小艾和小皮听了,连连拍手:“原来可以这样!是我们孤陋寡闻了!”



“好了,咱们有点跑题了。”牛郎说,“我刚来时提到的问题,咱们要解决的是,聊天的话题匹配问题。”
“最笨的办法,是让每个人说话前,先说一下,自己上次跟你聊了什么、聊到哪里了。”
“不过这样显然不好。”

“你可以记下每个人的名字,然后记录跟这个人的聊天内容、聊到了什么地方。”
“这是个好办法,但是,一个人如果想跟你聊了多个话题,那么你的记录就会很复杂。”

“所以,最好的方法,是为每一个话题,提供一个唯一的标识。”
“比如,今天这次会话,聊得是魔法。临走时,你可以拿起一块曲奇,掰一半给他,让他下次带着这块曲奇过来。”
“你拿着另一半曲奇,记录下对应的聊天内容、聊天的进度。”
“下次有人来,你只要找到与之匹配的曲奇饼,就知道他要聊什么、上次聊到哪里了。”
“聊天结束,你可以回收这块曲奇,或者为了某个话题一直聊下去,颁发一块永久曲奇。”

“这里,曲奇与许愿符,本质上是类似的,都是一个唯一标识的作用。”
小皮问到:“原理听明白了,那具体你想做什么?”
牛郎说:“哈哈,没什么,就是之后的通行中,我可能会携带这种类似于曲奇饼的特殊标识。”
“目前不需要喜鹊特别做什么,所以我只是提前过来告知下。”

“小事,没问题。来来来,咱们继续吃这真正的曲奇吧!”
三人与小飞一起,共食曲奇,畅快聊天。


  • 版权说明:
    文章内容系作者原创,转载请注明出处。
  • 封面图片:
    GoogleAndroid官网-AndroidPie配图
    图片源自网络,如有侵权,可联系作者删除。
  • 参考文献:
    CSDN-串行与并行
    百度百科-二分查找
    百度百科-Session
    百度百科-Cookie

你可能感兴趣的:(七夕缘起-第2.6.5章-番外-说话聊天带曲奇)