Показать сообщение отдельно
  #5 (permalink)  
Старый 25.11.2018, 21:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

sdffdsmdsfmdsmfsmd,
var matrix=[];
        var key=[2,0,3,1,4];
        var text="ПРИМЕРМАРШРУТНОЙПЕРЕСТАНОВКИ";
        for (var i=0; i< text.length; ){
            var txt = text.slice(i,i+= key.length).split("");
                    matrix.push(txt)
        }

console.table(matrix);

function encodeStr(text, key) {
    var matrix = {},
        out = "";
    for (var i = 0; i < text.length; i++) {
        var j = i % key.length;
        matrix[j] = (matrix[j] || "") + text[i]
    }
    for (var i = 0; i < key.length; ++i) {
        var j = key[i];
        out += matrix[j]
    }
    return out
};


var key = [2,0,3,1,4];
var text = "ПРИМЕРМАРШРУТНОЙПЕРЕСТАНОВКИ";

console.log(encodeStr(text, key) )

var txt = "ИАТЕАИПРРЙСВМРНРНРМУПТКЕШОЕО";

function decodeStr(text, key) {
    var matrix = {},
        out = {};
    for (var i = 0; i < text.length; i++) {
        var j = i % key.length;
        matrix[j] = (matrix[j] || 0) + 1
    }
    for (var i = 0; i < key.length; i++) {
        var j = key[i];
        var len = matrix[j];
        out[j] = text.slice(0, len);
        text = text.slice(len)
    }
    for (var i = 0;; i++) {
        var j = i % key.length;
        if (out[j]) {
            text += out[j].slice(0, 1);
            out[j] = out[j].slice(1)
        } else break
    }
    return text
};

console.log(decodeStr(txt, key));

Последний раз редактировалось рони, 25.11.2018 в 21:20.
Ответить с цитированием