Dan - I solved a similar problem a number of years ago: the codes for
answering machines are often only 2-digits and they ignore incorrect parts
of the sequence before and after the correct one.  I recall that I came up
with a 101-digit "universal" answering machine code.  Back in the days when
the audio modem was prevalent, it was easy to program this to be sent over a
phone line as well, so you could crack it in one try.

Regards,

Devon

On 6/24/08, Dan Bron <[EMAIL PROTECTED]> wrote:
>
> For convenience's sake, some cars allow you to unlock their doors with a
> numeric code rather than a key.  The code is entered on a buttonpad on the
> door.  Your mission, should you choose to accept it, is to become an
> efficient burglar of such cars.  I'll start you off with some hints.  Most
> cars have two glaring security flaws:
>
>      (A)  Unlike, for example, a computer keyboard or cell phone, there is
>           no "enter" or "send" key.  If you press the right 4 buttons in
> the
>           right sequence, the car door unlocks.  Importantly, the lock
>           ignores everything before and after the right sequence is
> pressed.
>
>      (B)  You get as many chances as you want (you can press as many
> incorrect
>           buttons as you like, with no ill consequences).
>
> Let's examine a concrete example.  The following hold for most such locks:
>
>     (C)  The unlock code consists of 4 button-presses.
>
>     (D)  Though it appears there are 10 buttons, there are really
>          only 5; each button merely carries two labels.  So there's no
>          difference between (eg) pressing "1" or "2":
>
>          [1 | 2]  [3 | 4]  [5 | 6]  [7 | 8]  [9 | 0]
>
> So, if the buttons are labeled A B C D E respectively, and the unlock code
> is BCBC, then ABCBCC will open the door, as will DDDDDBCBCDDDDD, etc.
>
> Theoretically, there is some minimal length sequence which contains all
> possible codes (sub-sequences of 4 button pushes).  Your job is to construct
> a J program to find this sequence (given the set of all buttons and the
> length of the unlock code).
>
> Put another way, write a dyadic J verb "burgle" whose output satisfies the
> following criteria: with the five buttons A B C D E  and the unlock
> code  key  (with  4=#key  )  then your sequence is defined by  sequence =: 4
> burgle 'ABCDE'  and  key e. 4 ]\
> sequence  with  #sequence  minimized.  Remember your dyad must be general
> enough to unlock a door with any number of buttons (given as the list   y  )
> and an unlock sequence of any length (given as the  integer  x  ).
>
> -Dan
>
> PS:  I stole this idea from
> http://www.everything2.com/index.pl?node_id=1520430  where the correct
> answer is given (for the specific case of  4=x  and  5=#y  )  in addition to
> pointers to the theory underlying its derivation.  Try to solve the puzzle
> first before visiting the link.
>
> PPS:  Here's a picture of a car buttonpad:
>
>
> http://bp3.blogger.com/_AKM4HWd7eMo/RwaWHOmXQmI/AAAAAAAAAAc/WE7U88UruSI/S760/keyless_entry.jpg
>
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>



-- 
Devon McCormick, CFA
^me^ at acm.
org is my
preferred e-mail
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to