Consider an answering machine with remote inquiry facility, where you can call the answering machine and enter a 4 digit passcode into your telephone keypad, so you can listen to the messages from anywhere you like. Many of these machines will let you in if you enter the correct consecutive sequence of digits, regardless of what preceded that sequence.
Example: Passcode is 1234.
if you feed the machine 1234, you're in.
if you feed the machine 01234, you're in.
if you feed the machine 0121234, you're in.
if you feed the machine 94129838701234, you're in.
To brute-force hack the machine, you could try all numbers from 0000 to 9999, sending 40000 sounds across the wire. But since you are a smart hacker, you see that there's room for optimization. What is the shortest series of digits you have to send to the answering machine in order to break the code in any case?
if we build a graph of all values as nodes and number of digits that get changed as the weight of edges we need shortest path traversal.
if we take language set as 0 and 1 and try to generate a string which has all substrings of length 2 then it is 01100 (2 power 2 + 2 -1)
similarly here number of elements in langugae are 10 and sub string size is 4 so is it: 10 power 4 + 4 - 1: 10003
Posted by perraju
on 2005-02-08 10:47:14