$$ 01 $$
一個(gè)寧?kù)o的早晨。
牛郎早已醒來(lái),坐在桌邊,望著天邊初升的太陽(yáng)。
現(xiàn)在的牛郎已經(jīng)修得仙身,添了幾分帥氣,也多了幾分灑脫。
不過(guò),由于天書(shū)契的原因,牛郎的通信類仙術(shù)無(wú)法生效,所以,與織女的溝通,還是要依賴喜鵲。
·
牛郎寫(xiě)了一封長(zhǎng)信,將自己的經(jīng)歷第一時(shí)間告訴了織女。
織女也回復(fù)了一封很長(zhǎng)的信,表達(dá)了自己的興奮與想念之情。
讀著織女的回信,牛郎感動(dòng)得熱淚盈眶:“這有些語(yǔ)句,怎么這么不通順呀……”
牛郎想了想:“難道是,當(dāng)傳輸數(shù)據(jù)過(guò)大時(shí),可能出現(xiàn)數(shù)據(jù)損壞的情況嗎?”
“這樣看來(lái),有必要嘗試數(shù)據(jù)的校驗(yàn)與重傳遞了?!?p> ·
因?yàn)橄铲o是憑借記憶傳遞,發(fā)送端的喜鵲將信件中的內(nèi)容,一句一句口口相傳發(fā)出去;
接收端最后的那只喜鵲,將每一句按順序收集起來(lái),重新寫(xiě)到紙上,形成一封新的信件。
之前已經(jīng)有完善的丟包重傳機(jī)制,一句話如果丟了,那么會(huì)被重新發(fā)送;
但是,如果某只喜鵲記錯(cuò)了,導(dǎo)致內(nèi)容有誤,這又該怎么辦呢?
·
“要不然每句話限定字?jǐn)?shù)怎么樣?”牛郎首先想到了字?jǐn)?shù)匹配,這樣多個(gè)字少個(gè)字就能看出來(lái)了。
“比如,每句話都是14個(gè)字,即兩句七言詩(shī)。雖然很文雅,但不夠通俗,簡(jiǎn)直就是‘不說(shuō)人話’了?!?p> “而且,某個(gè)字如果錯(cuò)了,也區(qū)分不出來(lái)?!?p> ·
牛郎低頭看著手中的信,忽然有了一個(gè)想法:“不如,在每句話后面,標(biāo)注上這句話的總筆畫(huà)數(shù)目,這樣準(zhǔn)確率會(huì)極大提高?!?p> “只是,還是有個(gè)小小的不足,每句話后面都帶個(gè)筆畫(huà)數(shù),也不像‘人話’呀,有沒(méi)有什么更正常的方式……”
·
----
$$ 02 $$
牛郎嘗試著模擬了一下:“你好,織女。24今天開(kāi)心嗎?22”
這樣子,準(zhǔn)確度是會(huì)提高不少,但是,可讀性不好。
有沒(méi)有什么更好的方式,能兼顧兩者呢?
·
加個(gè)格式?“你好,織女。(24)今天開(kāi)心嗎?(22)”
這樣也不太好,雖然清晰了許多,但依舊讀起來(lái)不順暢。
·
“要不在一段的末尾加個(gè)總的字?jǐn)?shù)?”牛郎再次搖搖頭,
“這樣字?jǐn)?shù)對(duì)閱讀的影響變小了,但是不能及時(shí)發(fā)現(xiàn)問(wèn)題,重傳一段的成本也高很多?!?p> 牛郎低頭沉思。
·
“對(duì)了,這個(gè)筆畫(huà)的概念,其實(shí)我并不關(guān)心。也就是說(shuō),它完全可以只存在于傳輸過(guò)程?!?p> 牛郎仿佛找到了開(kāi)門(mén)的鑰匙。
“我還是按照正常的方式寫(xiě)信,只是要求喜鵲在發(fā)送每一句話時(shí),帶上一個(gè)筆畫(huà)數(shù)?!?p> “接收方收到后,驗(yàn)證無(wú)誤則將原話寫(xiě)下,無(wú)需記錄筆畫(huà)數(shù)。而驗(yàn)證出錯(cuò),則要求對(duì)方重新傳輸。”
“這樣,既能保證準(zhǔn)確性,也能保證最終結(jié)果的可讀性?!?p> ·
牛郎起身,利用沙玉戒指騰空,向著喜鵲山上飛去。
“對(duì)了,有時(shí)間該學(xué)個(gè)飛行的仙術(shù)了,總是用沙玉戒指挺累的……”牛郎自言自語(yǔ)。
來(lái)到山頂,遠(yuǎn)遠(yuǎn)地就看到三人,小艾、小皮、小冰在廟前的空地上,正在切磋交流。
“別打了,求幫個(gè)忙!”牛郎喊到。
小冰看到牛郎,隨手扔過(guò)來(lái)一道冰錐。牛郎輕彈手指,一道沙幕出現(xiàn),成功格擋。
“這打招呼的方式,越來(lái)越危險(xiǎn)了呀……”
·
----
$$ 03 $$
四人來(lái)到廟中,圍坐桌前,牛郎解釋了自己的想法。
小艾聽(tīng)后,搖搖頭:“這個(gè)想法很好,但是,對(duì)于喜鵲來(lái)說(shuō),有些過(guò)難了?!?p> “你想,普通的一句話,它不是隨機(jī)的文字,而是一個(gè)有明確意思的組合,這就很容易記憶?!?p> “而后面加一個(gè)數(shù)字,當(dāng)這句話比較長(zhǎng)時(shí),非常容易記錯(cuò)?!?p> 小皮補(bǔ)充道:“你應(yīng)該還能記得自己剛來(lái)時(shí)第一句話是什么?!?p> “但是如果你說(shuō)完后在加上它的筆畫(huà)數(shù),我敢說(shuō)不到一個(gè)時(shí)辰,你就記不得這個(gè)數(shù)字了?!?p> ·
牛郎心有不甘:“完全將校驗(yàn)語(yǔ)義化,我也想過(guò),但是,太難了,并且可能讓語(yǔ)句變得很奇怪?!?p> 小皮想了想,說(shuō):“也不是完全不行,關(guān)鍵是筆畫(huà)數(shù)太大了,一般要兩位數(shù)到三位數(shù),自然容易錯(cuò)。”
“如果只是0-9的一個(gè)數(shù)字,那么,其實(shí)也不是那么容易記錯(cuò)?!?p> ·
“隨便幾個(gè)字就會(huì)超過(guò)9筆,只用一位數(shù),還真是有點(diǎn)難?!迸@烧f(shuō)。
這時(shí),小冰插話了:“其實(shí)也簡(jiǎn)單,只取個(gè)位數(shù),不就得了?!?p> 牛郎一想,好像在理:“確實(shí)只有1位數(shù),此時(shí)只有誤差剛好是10的倍數(shù),才會(huì)出錯(cuò),準(zhǔn)確度也很高?!?p> ·
小艾提了一句:“雖說(shuō)是校驗(yàn),是不是有點(diǎn)太簡(jiǎn)單了?這種內(nèi)容,王母那邊一眼就看出來(lái)了吧?”
牛郎一笑:“有道理,雖然以天庭的水平,遲早會(huì)發(fā)現(xiàn)我們的算法,但是還是想難為他們一下?!?p> 接著,牛郎打了個(gè)響指:“有辦法了。其實(shí),取個(gè)位數(shù),就是除以10的余數(shù)。我們可以改為取除以7的余數(shù),這樣就不好猜了?!?p> ·
----
$$ 04 $$
小皮略作沉思,說(shuō):“我覺(jué)得,我們不要用余數(shù)了,而是讓余數(shù)與7再作差一次?!?p> “相當(dāng)于前面的筆畫(huà)數(shù),加上末尾的校驗(yàn)數(shù)后,剛好可以被7整除?!?p> 小艾說(shuō):“忽然想到一點(diǎn),咱們要統(tǒng)計(jì)一句話的筆畫(huà)數(shù),其實(shí)還是挺麻煩的?!?p> “隨口說(shuō)一句話容易,但一眼看出來(lái)筆畫(huà)數(shù)目,挺難?!?p> ·
牛郎說(shuō):“也不是每一只喜鵲都需要校驗(yàn)的,咱們只要首尾兩只喜鵲校驗(yàn),就足夠了。”
“另外,筆畫(huà)統(tǒng)計(jì)的耗時(shí),如果和信息在途中傳遞的時(shí)間相比的話,這個(gè)時(shí)間還是非常短的?!?p> 小皮反駁道:“時(shí)間雖短,但是讓你一致做這種數(shù)筆畫(huà)的事情,很快應(yīng)該就厭倦了吧?”
牛郎想了想,說(shuō):“確實(shí),這個(gè)工作過(guò)于枯燥了。但是我有不想放棄筆畫(huà)校驗(yàn),我有個(gè)想法?!?p> “筆畫(huà),不應(yīng)該數(shù),而應(yīng)該是查閱的。而且,要有喜鵲專門(mén)負(fù)責(zé)。查閱減少枯燥,熟能生巧提高效率?!?p> “也許一段時(shí)間后,負(fù)責(zé)統(tǒng)計(jì)筆畫(huà)的喜鵲,聽(tīng)完一句話就能知道有多少筆畫(huà)了?!?p> ·
小艾問(wèn):“查閱,不會(huì)是需要準(zhǔn)備一本字典吧?我總覺(jué)得,翻字典比數(shù)筆畫(huà)更慢呢……”
牛郎回答:“當(dāng)然,這里必須要優(yōu)化下的。對(duì)了,應(yīng)該不用那么麻煩了。你們不是神仙么,施法造個(gè)筆畫(huà)轉(zhuǎn)換器吧?”
“不會(huì)。”三人異口同聲。
小冰說(shuō):“牛郎啊,你也是神仙了吧,自己來(lái)造一個(gè)呀?”
牛郎搖搖頭:“我現(xiàn)在什么仙術(shù)都不會(huì)……”
小冰說(shuō):“我們可以教你呀!來(lái)來(lái)來(lái),仙魔本一家,接下來(lái)我跟你說(shuō)說(shuō)魔法入門(mén):HelloWorld……”