emilbarton has asked for the wisdom of the Perl Monks concerning the following question:
I asked indirectly a question in Re: Length obfuscation that I'd like to extend here to a wider audience:
Is there a means to obtain the translation seed "n0123.." permutationally?
The translation seed allows to shift any permutational string to the right by one sign. What I mean by permutationally is that you can obtain your result with the help of the function perm() primarily. For example the natural suite "0123..n" can be obtained permutationally by repeating y = perm(x,x) and then y1 = perm(y,x) enough times with y1,y2,etc. for any permutation x. In Re: Length obfuscation I think that with some more efforts, the function comp() could be reduced to a particular composition of calls to perm().
I know it's more a math question than a Perl one but I found that it was not a bad idea to ask for the wisdom of Perl monks - who are used to deal with generic problems of this kind after all. Getting the translation seed permutationally should make a system of permutational functions more efficient.
sub perm { my ($target,$agent) = @_; my @targ = split //,$target; my @perm = split //,$agent; my $res; for (my $i = 0; $i < (@perm); $i++){ $res .= $perm[$targ[$i]] } return $res; }
Comment:
By "permutation" we understand any permutation of the distinct elements pertaining to the natural - or well ordered - suite "01..n". The function perm() above accepts two permutations in the same base n+1 < 11. For this function, "012", "3102", "7465023198", are valid permutations when "013", "3112" or "7465023198A" are not.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: How to get the translation seed?
by jethro (Monsignor) on Aug 31, 2011 at 14:53 UTC | |
by emilbarton (Scribe) on Aug 31, 2011 at 15:13 UTC | |
by emilbarton (Scribe) on Aug 31, 2011 at 15:34 UTC | |
|
Re: How to get the translation seed?
by emilbarton (Scribe) on Sep 13, 2011 at 18:58 UTC |