什么是最短的数字串,包含0到1000之间的所有数字

时间:2010-12-08 15:45:38

标签: algorithm math

我坐在我的办公桌前,我只是想出了一个问题,我想知道是否有人能想出一个解决方案,或者用数学方式来证明这一点。

说我想找到最短的数字串,其中包含0到1000之间的每个数字。例如,字符串“1433”包含数字,1,4,3,14,43,33,143和433。

我可以使用什么算法来构造包含所有数字0-1000的最短字符串。

我没有任何实际的理由让我知道,但我有兴趣听听是否有。

1 个答案:

答案 0 :(得分:6)

您要求修改de Bruijn sequence。具体来说,de Bruijn序列的第一个n-1个字符附加到字符串的末尾。

对于您询问的特定情况,它将是10 ^ 3 + 2 = 1002位长(假设1000不包括在内 - 如果你设置的话,你可以安排1000在字符串中是的,但不保证任意选择的(10,3)de Bruijn序列将包含“1000”)。