I am trying to decode an encrypted message

Here are the files that I have to use.
% First file
encodedString = 'aasfu aic talputte balde';
encryptionKey = [6,7];
% encryptionKey is an array that stores the m-value used in
% perfectMShuffle() function and the number of shuffles performed.
% write the rest of the code, which has to be done in two parts:
% 1) determine the cycle length of the m-shuffle, i.e. how many shuffles
% (including the first one) are needed to return the string to its original
% order
% 2) complete the shuffle cycle on the encoded string to reveal the secret
% message
% Second file
function outString = perfectMShuffle(inString,m)
% This function shuffles the characters in the inString by picking 1st,
% m+1st, 2m+1st characters till it reaches the end, then picking 2nd, m+2nd
% 2m+2nd etc.
% Examples:
% perfectMShuffle('abcdef',3) -> 'adbecf'
% perfectMShuffle('abcdef',2) -> 'acebdf
So how do I approach this problem?

2 Commenti

This looks like a homework question. For obvious reasons we will not solve this for you, otherwise you would be forced to cheat, when you submit it.
The standard procedure is that you show us, what you have tried so far and ask a specific question.
how do I implement the outstring function here is what I have
function outString = perfectMshuffle(inString,m)
n = length(inString);
y = zeros(n,1);
m = n/2;
for k = 1:m
y(2*k-1) = inString(k);
y(2*k) = inString(k+m);
end

Accedi per commentare.

Risposte (1)

Walter Roberson
Walter Roberson il 15 Ott 2013
What happens if you reshape() a vector into an array, transpose(), and reshape the result into a vector?

3 Commenti

Thanks for the help I just did it,
n = length(inString);
X = n/m;
outString = reshape(reshape(inString,X,m)',n,1);
so how do I decode the encrypted message??
Encode [1:length(inString)] using your encoding method. Then index the encrypted string by the array that resulted from that encoding.
Thanks for the heads up again now I wrote the full program am almost there i just dont know where to add the encode[(1:length(instring)]. Here is my code
encodedString = 'aasfu aic talputte balde';
encryptionKey = [6,7];
% encryptionKey is an array that stores the m-value used in
% perfectMShuffle() function and the number of shuffles performed.
N = 1000;
cl = zeros(N/2,1);
for n = 2:2:N
ordered = [1,n]';
encodedString = ordered;
encodedString = perfectMShuffle(encodedString,encryptionKey);
counter = 1;
while any(encodedString - ordered)
encodedString = perfectMShuffle(encodedString,encryptionKey);
counter = counter + 1;
end
cl(n/2) = counter;
end

Accedi per commentare.

Categorie

Scopri di più su Programming in Centro assistenza e File Exchange

Richiesto:

il 15 Ott 2013

Commentato:

il 19 Ott 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by