Регистрирайте сеРегистрирайте се

Въпрос за Матрици и кодиране според Хил


 
   Форум за математика Форуми -> Функции / Производни
Предишната тема :: Следващата тема  
Автор Съобщение
mn
Начинаещ


Регистриран на: 08 Sep 2007
Мнения: 8

Репутация: 2.9Репутация: 2.9

МнениеПуснато на: Sat May 03, 2008 10:29 pm    Заглавие: Въпрос за Матрици и кодиране според Хил

Здравейте, имам един въпрос. Трябва да кодирам едни числа според кон на Хил измислен около 1931 год. Кодирането става по следния начин: Имам един ключ който представлява матрица 2х2 имам и две числа които трябва да се закодират, те представляват матрица 1х2. Кодирането става като се умножат матриците и се поли4и нова матрица 1х2. След това доколкото разбрах според този метод на кодиране трябва да се направи нещо което се казва мо mod(27), mod означава модул а 27 се избира според кова(колко символа могат да бъдат закодирани), затова аз съм го избрал, понеже закодирвам букви на латиница а те са 27. mod може да видите как работи тук ttp://en.wikipedia.org/wiki/Modular_arithmetic в общи линии се вади от полу4ата матрица (от всеки ред и стълб) по 27 докато се полу4и остатък по малък от нула и по голям от 0 (дели се на 27 и се взема остатъка). Поне аз така разбрах от това което прочетох,може и да не е точно така. До тук добре, проблема обаче е когато дойде време за разкодиране. Там работата става като обратната матрица на тази с кода се умножи по резултата, би трябвало да се получи матрица със същите две числа които сме искали да кодираме, обаче не. Ето пример, дано се разбере понеже се размества малко (вертикалните линии (|) трябва да са една под друга, дублирал съм знаците по и равно):

закодиране
|11 8| . | 6| = |11*6+8*15| = |186| = |24| mod(27)
| 3 7| . |15| = |3*6+7*15 | = |123| = |15|

декодиране - тук се използва обратната матрица на ключа
|7 -8| . | 24| = | 7*24-8*15 | = |48| = |21| mod(27)
| -3 11| . |15| = |-3*24+11*15| = |93| = |12|

Ясно се вижда че резултата е 21 и 12, което е различно от 6 и 15. Ако извадим от 21-27= -6 и 12-27=-15. Тук вече се получава обаче незнам дали това е правилното, понеже вече числата са първите но между 0 и -27 а не между 27 и 0.

Гледах от друг пример там обаче се получава, което е странно, ето го примера:

закодиране
|2 13| . |59| = | 2*59+13*16 | = |147| = |59| mod(89)
|17 22| . |16| = |17*59+22*16 | = |1335| = |20|

декодиране - тук се използва обратната матрица на ключа
|22 -13| . |59| = | 22*59 -13*20 | = |1038| = |59| mod(89)
|-17 2 | . |20| = | -17*59+2*20 | = |-963| = |16|

тук обаче явно се получава. много странно. Модулът е 89 понеже има повече символи които могат да се закодират
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Реклама







Пуснато на:     Заглавие: Реклама

Върнете се в началото
Покажи мнения от преди:   
   Форум за математика Форуми -> Функции / Производни Часовете са според зоната GMT + 2 Часа
Страница 1 от 1

 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети
Може да прикачвате файлове
Може да сваляте файлове от този форум
Copyright © 2005-2021 math10.com.