![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| SectoR |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 5.10.2005 Репутация: нет Всего: нет |
Посмотрите на рисунок (скриншот Mathcad'а) в прикрепленном файле и
скажите как реализовать на СИ вторую строчку??? С первой проблем нет, если использовать функцию fmod(_,_) из math.h! Присоединённый файл ( Кол-во скачиваний: 19 )
1.GIF 1,51 Kb |
|||
|
||||
| SectoR |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 5.10.2005 Репутация: нет Всего: нет |
Вот алгоритм нахождение обратного элемента по модулю (inverse Euclid), но mod(9/pow(6,8),11) не берет... Может поможете его усовершенствовать
Это сообщение отредактировал(а) SectoR - 14.10.2006, 23:57 |
|||
|
||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 1 Всего: 116 |
SectoR, вопрос на засыпку: что ты подразумеваешь под mod(9/pow(6,8),11) ? Это что значит? Словами можно? По модулю 11 понятно. Само число какое?
|
|||
|
||||
| SectoR |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 5.10.2005 Репутация: нет Всего: нет |
M=mod( b/pow(a,X), P ) - формула для дешифр-я! Расшифровываю (зашифрованный по алг-му Эль-Гамаля текст) по формуле M = b/a^(X) mod P В программе пробовал так: M=fmod( b/pow(a,X), P ); cout<<" M: "<<M<<endl; Пробовал с помощью алг-ма Евклида и его модификации для нахождения обратного элемента по модулю (см. выше)... 9/6^(8)=5.358*10^(-6) - флот получ-ся, а чтобы Euclid и Inverse Euclid алгоритмы работали с float'ами я никак не могу переделать Проблема все та же, должна пятерка получиться, см. рис: По какому же алгоритму Mathcad все это дело вычисляет Присоединённый файл ( Кол-во скачиваний: 4 )
n.GIF 1,52 Kb |
|||
|
||||
| volvo877 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 1 Всего: 116 |
Неправильно... Я тебе уже сказал, как нужно делать: Заменяй деление умножением на обратное число по модулю...
( 9 * inverse(pow(6, 8), 11) % 11 = 5 ) |
||||
|
|||||
| SectoR |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 5.10.2005 Репутация: нет Всего: нет |
Вопрос решен, подробности ТУТ!
Буду должен "+", пока не наберу необх-е кол-во постов на этом форуме Это сообщение отредактировал(а) SectoR - 15.10.2006, 03:11 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |