Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с перемножением матриц.

35K
20 апреля 2010 года
Mediv63
50 / / 08.12.2009
Помогите плиз с алгоритмом перемножения матриц для матричного шифрования для произвольных матриц, суть такая: есть массив iKey[1024] который является ключом для шифрования и его длина зависит от сложности шифрования, то есть если разбиваем текст на биграмы то матрица будет 2х2 и следовательно в массиве будет 4-ре элемента, если n-грамма то будет матрица nxn и массив из n^2 элементов. Также есть массив iopenText[1024] который содержит набор чисел k*n, и образует k n-грамм. Нужно получить массив зашифрованных чисел.
например: n=2, iOpenText = {1,4,3,6} матрица iKey = {1,2,1,4}. получаем iCloseText[0] = 1*1+2*4, iCloseText[1] = 1*1+4*4, iCloseText[2] = 1*3+2*6, iCloseText[3] = 1*3+6*4.

Помогите с алгоритмом для произвольного n.
35K
21 апреля 2010 года
Mediv63
50 / / 08.12.2009
уже не надо, тему можно закрыть.
если кому интересно вот код:
Код:
cout << "iCloseText: ";
    for (int i = 0; i < c; i = i + iSl)
    {      
        for( int s = 0; s < iSl; s++)
        {
           
            iCloseText[i+s] = 0;           
            for (int q = 0; q < iSl; q++)
            {              
                iCloseText[i+s] = iCloseText[i+s] + get_pole(iKey[s*iSl+q]*iOpenText[i+q]);
                iCloseText[i+s] = get_pole(iCloseText[i+s]);
            }  
           
            cout << iCloseText[i+s] << "_";            
        }      
    }
    cout << "\n";
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог