【问题标题】:Alphabetical file numbering system按字母顺序排列的文件编号系统
【发布时间】:2014-07-25 19:54:54
【问题描述】:

我经常希望输出一些名称为file-1file-2 等的文件。但是,如果有 10 个或更多文件,则文件的字母顺序与数字顺序不同,因为 file-10 介于 file-1file-2 之间。

如果我提前知道会有多少个文件,我可以用 0 填充较低的数字。但我想以“流式传输”方式执行此操作,而不事先知道会有多少文件。

也就是说,我想要一个无限的字符串序列 S(n),这样:

  1. 对于任何 i,S(i) 按字典顺序在 S(i+1) 之前
  2. S(i+1) 可以在 O(log(i)) 时间内计算,给定 S(i)
  3. i

有满足这些条件的序列吗?

【问题讨论】:

  • 我不明白为什么这被否决了。这个问题有什么不清楚的地方吗?

标签: sequence filenames alphabetical


【解决方案1】:

这是一个部分解决方案。为简单起见,这仅使用符号01

S(1) 是字符串1。从 S(i) 生成 S(i+1):

  • 如果 S(i) 由所有 1s 组成,则 i+1 是 2 的幂。将 log2(i+1) 0s 附加到 S(i)。
  • 否则,递增由 S(i) 表示的二进制数。

序列开始:

1, 10, 11, 1100, 1101, 1110, 1111, 1111000, 1111001, ...

这会产生一个字符串序列,其长度增长为 O((log(i))^2),这不是我想要的。生成的字符串也不是很可读。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 2010-11-08
    相关资源
    最近更新 更多