So I wrote about lstrings. I intend to write about them again in a short while – I already finished the basic script a few days ago, but I’m waiting, until I will be satisfied with it.
In the meantime, here is a curious riddle (That I came up with):
Version 1 (not final)
Assume you are given some iteration of an lstring – S. How do you discover the original lstring used to create S?
Well, those who are quick to answer will first try to discover the length of the original string – it could be computed directly from S. At this point you should come to the conclusion that without being given the exact number of iterations – the riddle is not that interesting… Iterating on an lstring is an associative operation. If we denote the substitution of a string A into a string B as multiplication, when both are iterations on an original string T , we will get:
A*B =T^n * T^k = T^(n+k) = T^k* T^n
This will result in the obvious answer to the original riddle – “Why, the lstring S is the original string, with zero iterations!”. This answer is correct – and obviously useless :)
So, let us rephrase the riddle:
Version 2 (final)
Assume you are given some iteration of an lstring – S. How do you discover the minimum possible lstring that could be used to create S?
Discussion – But not a solution
This is the proper riddle – have at it! I will be glad to read your thoughts…
note: The acceptable solution should be either an algorithm, or a constructive mathematical proof. I don’t like reading only statements of existence :)