要求找出長度為2^k+k-1的binarystring,其任意一個長度為k的substring都是唯一的。例如,當k=2時,需要找到長度為5的binarystring,使其任意連續兩位在整個string內是唯一的。滿足條件的解共有4個:00110、10011、11001、01100。以00110為例,00、01、11、10都只出現了一次。k=3時,就需要找到長度為10的binarystring,使其任意連續三位在整個string內是唯一的。一共有16個解,其中字典序最小一個是0001011100。k=4時,有256個解,其中字典序最小的一個是0000100110101111000。k=5時,有65536個解,其中一個是000001000110010100111010110111110000。現在我想問的兩個問題是:1、有什么算法可以快速找出一個任意解,或是找出所有的解?2、看起來似乎k=n時的解的數量是k=n-1時的解的數量的平方。但是能否證明?十分感謝諸大神。
長度為 2^k + k - 1 的 binary string,使其任意一個長度為 k 的 substring 都是唯一的
呼如林
2019-04-08 11:17:30