![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
SeregaR1Val |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Реальное имя: Серёга Репутация: ![]() ![]() ![]() |
В принципе реализация алгоритма понятна, проблемы с нахождением первообразного корня по модулю m
http://ru.wikipedia.org/wiki/Первообразный..._(теория_чисел) И понятия не имею как это запрограммировать, если можете, помогите пожалуйста. В методичке есть реализация на C++, а обучение на Delphi, поэтому непонятно вообще ... Реализация Функция powmod() выполняет бинарное возведение в степень по модулю, а функция generator (int p) - находит первообразный корень по простому модулю (факторизация числа здесь осуществлена простейшим алгоритмом за ). Чтобы адаптировать эту функцию для произвольных , достаточно добавить вычисление функции Эйлера в переменной phi. int powmod (int a, int b, int p) { Сообщение отредактировано: SeregaR1Val - 26.04.2010 20:15 |
![]() ![]() |
SeregaR1Val |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Реальное имя: Серёга Репутация: ![]() ![]() ![]() |
Терзают сомнения, что алгоритм описанный в методе то, что должно быть )) Ну да ладно ...
procedure TForm1.Button1Click(Sender: TObject); Функция modes по моей задумке вычисляет выражение Ae mod m Но почему-то ответ почти всегда 0 или еще что-то, но не то, что надо! Подскажите, пожалуйста, в чем ошибка? Сообщение отредактировано: SeregaR1Val - 28.04.2010 17:46 |
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 11:14 |