2014-07-25 41 views
-2

通常我希望輸出許多名稱爲file-1,file-2等的文件。但是,如果有10個或更多文件,則文件的字母順序將與數字順序不同,因爲file-10介於file-1file-2之間。按字母順序排列的文件編號系統

如果我事先知道會有多少個文件,我可以用0填充較低的數字。但我想以「流媒體」的方式來做到這一點,但事先並不知道會有多少文件。

即,我想串S的無限序列(n)的,使得:

  1. 序列s(i)按字母順序先於S(I + 1)對於任何i
  2. S(i + 1的)可以在O計算(日誌(i))的時間,給定的S(I)
  3. 串S(i)的最大長度對於i < = n是O(的log(n))

是否有任何序列滿足這些條件?

+0

我不明白爲什麼這是downvoted。這個問題有些不清楚嗎? – augurar

回答

0

以下是部分解決方案。爲了簡單起見,這僅使用符號01

S(1)是字符串1。以生成選自S S(I + 1)(ⅰ):

  • 如果S(ⅰ)由所有1的S,然後I + 1是2附加的log 2的功率(I + 1)0小號到S(i)。
  • 否則,遞增由S(i)表示的二進制數。

該序列開始:

11011110011011110111111110001111001,...

這就產生串其長度增長的O序列((log(i))^ 2),這並不是我想要的。此外,由此產生的字符串不是非常可讀的。