這個(gè)問(wèn)題源自最近在設(shè)計(jì)的一套協(xié)議,用在一個(gè)分布式系統(tǒng)中。
首先,我們將有序數(shù)列(有限或無(wú)限都可以)稱(chēng)為是一個(gè)“表達(dá)基”,只要求對(duì)任意
都滿足
。
接著,我們將一個(gè)有序數(shù)列稱(chēng)為是數(shù)N的一個(gè)“表達(dá)”,如果滿足
。
進(jìn)一步,我們可以稱(chēng)一個(gè)表達(dá)是“自然表達(dá)”,如果對(duì)其中的任意都是自然數(shù)。
如果一個(gè)自然表達(dá)與另一個(gè)自然表達(dá)
(兩個(gè)表達(dá)可以不是同一個(gè)數(shù)的表達(dá))滿足
,則稱(chēng)前者是后者的一個(gè)子自然表達(dá)。
接著,我們可以定義一個(gè)表達(dá)的權(quán)重為
。
好了,下面就是問(wèn)題了:
選定表達(dá)基為,其中p是素?cái)?shù)。則,任意自然數(shù)N都有一組自然表達(dá)X,使得任意小于N的自然數(shù)都存在至少一個(gè)自然表達(dá)Y,且Y是X的子自然表達(dá)。現(xiàn)在,請(qǐng)給出這樣的表達(dá)集
中權(quán)重最小的那個(gè)表達(dá)。
上述集合被稱(chēng)為N的“可分解表達(dá)”,而權(quán)重最小的那個(gè)就是N的“最廉價(jià)可分解表達(dá)”。
首先,上面提到的表達(dá)集肯定是存在的,因?yàn)楸厝淮嬖谝粋€(gè)“平庸的”滿足條件的表達(dá):。
這個(gè)表達(dá)顯然地滿足條件,但顯然地權(quán)重太大。
為了找到足夠廉價(jià)的表達(dá),一個(gè)可行的方案是這樣的:
首先,找到比N小的最大的可以表達(dá)為形式的數(shù),記為n,稱(chēng)為N的“表達(dá)主部”,而N-n就是N的“表達(dá)余部”。
接著,將主部和余部都用p進(jìn)制表示(不是現(xiàn)代數(shù)學(xué)中的p進(jìn)數(shù)),接著把這兩個(gè)表示直接當(dāng)做表達(dá),再加在一起,就構(gòu)成了一個(gè)“足夠廉價(jià)”的表達(dá)了。
這樣的表達(dá)被稱(chēng)為N的“足夠廉價(jià)可分解表達(dá)”。
比如說(shuō),我們?nèi)=2,那么8的足夠廉價(jià)可分解表達(dá)就是{211},很顯然,1到7都可以用這個(gè)表達(dá)的子表達(dá)來(lái)表達(dá),比如7={111},6={011},等等。
要證明足夠廉價(jià)可分解表達(dá)滿足要求是很簡(jiǎn)單的,因?yàn)楹苋菀鬃C明以下兩點(diǎn):
- 假定m是比N小的自然數(shù),m的一個(gè)表達(dá)是N的可分解表達(dá)的子表達(dá),將兩個(gè)表達(dá)的對(duì)應(yīng)元素相減,得到的還是這個(gè)可分解表達(dá)的子表達(dá),且表達(dá)了自然數(shù)N-m。
- N的表達(dá)主部的p進(jìn)制表示對(duì)應(yīng)的表達(dá),其中總存在至少一個(gè)子表達(dá)可以表達(dá)任意一個(gè)小于主部的自然數(shù)。
第二點(diǎn)表明了,所有小于主部的數(shù)都存在一個(gè)表達(dá)是主部表達(dá)的子表達(dá)。而第一點(diǎn)則表明,只要1到N的一半的自然數(shù)可以用N的表達(dá)的子表達(dá)表達(dá),那么剩下的一半也可以。
所以,足夠廉價(jià)可分解表達(dá)肯定是滿足題意要求的表達(dá)。
下面的問(wèn)題只有一個(gè):足夠廉價(jià)可分解表達(dá)是不是最廉價(jià)可分解表達(dá)呢?
個(gè)人認(rèn)為應(yīng)該是的,但還沒(méi)法證明。
主要是,主部的部分當(dāng)然是沒(méi)問(wèn)題的,余部用p進(jìn)制表示來(lái)表達(dá)后,當(dāng)然也是權(quán)重最小的,但兩個(gè)加起來(lái)后是不是最廉價(jià),還真不好說(shuō)。
這個(gè)問(wèn)題可以用在什么地方?
地方很多啊,比如還是現(xiàn)金時(shí)代,金額怎么用鈔票來(lái)表達(dá),就會(huì)遇到這個(gè)問(wèn)題:在不找零的情況下,掏出多少紙幣給對(duì)方能讓對(duì)方用起來(lái)最方便?
當(dāng)然,估計(jì)也沒(méi)多少人會(huì)在意這個(gè)細(xì)節(jié)問(wèn)題吧。。。
在分布式系統(tǒng)中,這個(gè)問(wèn)題就有了很多可以發(fā)揮作用的地方,這里就不細(xì)說(shuō)了。