記一個(gè)問(wèn)題:自然數(shù)的最廉價(jià)可分解表達(dá)

這個(gè)問(wèn)題源自最近在設(shè)計(jì)的一套協(xié)議,用在一個(gè)分布式系統(tǒng)中。


首先,我們將有序數(shù)列\{b_i\}(有限或無(wú)限都可以)稱(chēng)為是一個(gè)“表達(dá)基”,只要求對(duì)任意b_i都滿足b_i>0

接著,我們將一個(gè)有序數(shù)列\{a_i\}稱(chēng)為是數(shù)N的一個(gè)“表達(dá)”,如果滿足N = \sum_i a_i b_i

進(jìn)一步,我們可以稱(chēng)一個(gè)表達(dá)是“自然表達(dá)”,如果對(duì)其中的任意b_i都是自然數(shù)。

如果一個(gè)自然表達(dá)\{a_i\}與另一個(gè)自然表達(dá)\{b_i\}(兩個(gè)表達(dá)可以不是同一個(gè)數(shù)的表達(dá))滿足\forall i : a_i \le b_i,則稱(chēng)前者是后者的一個(gè)子自然表達(dá)。

接著,我們可以定義一個(gè)表達(dá)\{a_i\}的權(quán)重為w = \sum_i |a_i|

好了,下面就是問(wèn)題了:

選定表達(dá)基為b_i = p^{i-1},其中p是素?cái)?shù)。則,任意自然數(shù)N都有一組自然表達(dá)X,使得任意小于N的自然數(shù)都存在至少一個(gè)自然表達(dá)Y,且Y是X的子自然表達(dá)。現(xiàn)在,請(qǐng)給出這樣的表達(dá)集\{X\}中權(quán)重最小的那個(gè)表達(dá)。

上述集合被稱(chēng)為N的“可分解表達(dá)”,而權(quán)重最小的那個(gè)就是N的“最廉價(jià)可分解表達(dá)”。


首先,上面提到的表達(dá)集肯定是存在的,因?yàn)楸厝淮嬖谝粋€(gè)“平庸的”滿足條件的表達(dá):\{a_i|a_1=N,a_{>1}=0\}

這個(gè)表達(dá)顯然地滿足條件,但顯然地權(quán)重太大。

為了找到足夠廉價(jià)的表達(dá),一個(gè)可行的方案是這樣的:

首先,找到比N小的最大的可以表達(dá)為m p^n-1,m<p形式的數(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):

  1. 假定m是比N小的自然數(shù),m的一個(gè)表達(dá)是N的可分解表達(dá)的子表達(dá),將兩個(gè)表達(dá)的對(duì)應(yīng)元素相減,得到的還是這個(gè)可分解表達(dá)的子表達(dá),且表達(dá)了自然數(shù)N-m。
  2. 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ō)了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • One 1 the [e?, ei:] art.這,那 ad.[用于比較級(jí);最高級(jí)前] 2 be [bi:,bi]...
    梁培林閱讀 9,386評(píng)論 0 10
  • 入冬的那場(chǎng)雨,又讓她想起了往事…… 那天天氣陰沉沉的,他們相約去辦卡,她總是有準(zhǔn)備的備好所需東西,正如她所料的...
    花心di蘿卜閱讀 239評(píng)論 0 3
  • 距離立春只有8天了,這個(gè)冬天顯得十分的干燥,陰霾的日子成了常態(tài)。沒(méi)有凜冽的寒風(fēng),也沒(méi)有了晴朗的藍(lán)天。 沒(méi)有寒冷的風(fēng)...
    星韻r閱讀 455評(píng)論 6 7
  • 感覺(jué)時(shí)間好快,今天第二天的學(xué)習(xí)就結(jié)束了,越來(lái)越感覺(jué)時(shí)間不夠用,還有很多東西需要學(xué)習(xí)。 1.上午學(xué)習(xí)了html,內(nèi)容...
    媚兒大人閱讀 183評(píng)論 0 0
  • 當(dāng)我開(kāi)始發(fā)產(chǎn)品廣告的時(shí)候,有的人跑來(lái)問(wèn)我怎么了?有的人幫我轉(zhuǎn)發(fā)宣傳了,還有人直接轉(zhuǎn)賬購(gòu)買(mǎi)了,真的是很可愛(ài),很暖心,...
    鹿凌閱讀 335評(píng)論 0 0