7 / 7 / 4
Регистрация: 30.07.2010
Сообщений: 87
1

ро-метод Полларда

11.08.2010, 19:54. Показов 8933. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Задание такое: Реализовать ро-метод Полларда факторизации челых чисел на примере 32 битовых чисел. Давно есть код сделаный на Паскале вот как это сделать на с++ подскажите пожалуйста
Если кому вдруг чем то поможет код на Паскале скину. По поводу ро-метода Полларда собственно вот из википедии если вдруг кто не знаком с темой
ρ-aлгоритм Джона Полларда, предложенный им в 1975 году, служит для факторизации целых чисел. Он основан на том, что вычисляется некий многочлен степени не выше второй от начального числа Х — f(X).
[править]
Описание алгоритма

Пусть надо разложить на множители число P
Шаг 1. Выбирается многочлен f(x) с целочисленными коэффициентами, степени не выше 2. Обычно берется многочлен вида y = x2 + c(mod P).
Шаг 2. Случайно выбирается x0 = y0 меньше P.
Шаг 3. Вычисляются значения xi = f(xi − 1)(modP),yi = f(f(yi − 1))(modP).
Шаг 4. Находится d = ( | xi − yi | ,P).
Шаг 5. Если d = 1, происходит переход на шаг 3, если d = P, происходит остановка - факторизацию провести не удалось. Если 1 < d < P, то найдено разложение числа P.


[править]
Альтернативное описание
Шаг 1. Выбирается многочлен f(x) с целочисленными коэффициентами, степени не выше 2 и целое число m.
Шаг 2. Случайно выбирается x0 меньше P.
Шаг 3. Вычисляются значения xi = f(xi − 1)(modP).
Шаг 4. Для h = 0,1,...,[logm] полагаем j = 2h − 1 и для каждого 2h < = k < 2h + 1 вычисляем d = ( | xj − xk | ,P). Если 1 < d < P, то нетривиальный делитель числа n найден. Если d=1 или d=P, то переходим к следующему значению h.
[править]
Сложность алгоритма

Пусть n — составное число. Тогда существует такая константа C, что для любого положительного числа λ вероятность события, состоящего в том, что ρ-метод Полларда не найдет нетривиального делителя n за время , не превосходит величины e − λ
Заранее спасибо

Добавлено через 22 часа 3 минуты
up
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.08.2010, 19:54
Ответы с готовыми решениями:

Метод факторизации Полларда (p-1)
Весь форум облазил но не нашёл, пришлось зарегаться. Очень нужно реализовать в Pascal ABC метод...

ро-метод Полларда дискретного логарифмирования
Добрый день. Задача: Элемент a имеет порядок q по модулю p. Найти дискретный логарифм x - такое...

ро-метод Полларда (факторизация числа)
Доброго времени суток! Необходимо написать ро-алгоритм Полларда. Взял Кнута с его &quot;Искусство...

блок-схема к ро-методу Полларда
Доброго времени суток. Есть программа, нужно нарисовать к ней блок-схему. Собственно далек от этого...

2
1080 / 1007 / 106
Регистрация: 28.02.2010
Сообщений: 2,889
11.08.2010, 20:36 2
Нарыл кое-что в китайской помойке. См. вложение.
Скажу сразу, что пример нерабочий (неправильно реализован алгоритм, нужно где-то поправить) и может быть не по вашей теме.
В отличие от оригинала, который писал какой-то китаец, в нем более менее понятно что/зачем.

Сам оригинал (думаю не понадобится):
ссылка удалена
 Комментарий модератора 
прикрепляйте архив к сообщению
Вложения
Тип файла: zip main.zip (729 байт, 247 просмотров)
2
7 / 7 / 4
Регистрация: 30.07.2010
Сообщений: 87
13.08.2010, 18:21  [ТС] 3
Cпасибо большое, еще вопрос такой нубской а что должна программа показать на экран то есть мы вводим с клавиатуры число размером не более 32 бит а она выдает для него ключ дешифрования то ли шифрования, либо для каких то поределенных чисел, пример 32 битовых чисел есть во многих источниках. Признаю свое нубство в этом вопросе все это было в моих лекциях по спец розделам программирования на которые я благополучно появлялся раз в пять лет на протяжении семестра щас вот понял что это моя основная специальность начал учить просто программирование с++ вроде разобрался как мне кажется неплохо, длеаю все лабы что были в семестре всех вариантов ну и кое что стал соображать потихоньку. Разобраться с кодом думаю не составит труда главное знать что он должен выводить то на экран не прошу что то исправлять или еще что то делать просто скажите пожалуйста как оно работать должно вроде разобрался алгоритм не такой то и сложный Спасибо.

Добавлено через 14 часов 44 минуты
up

Добавлено через 6 часов 50 минут
up

Добавлено через 23 часа 5 минут
up
0
13.08.2010, 18:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.08.2010, 18:21
Помогаю со студенческими работами здесь

Нужно реализовать Ро-алгоритм Полларда
Ребят вообщем нужно реализовать этот алгоритм.. Но что то я не пойму как... Нужно разложить...

Необходимо реализовать алгоритм Полларда (алгортим факторизации числа n)
Доброго времени суток) Необходимо реализовать алгоритм Полларда (алгортим факторизации числа n). ...

Код Алгоритма Полларда как устранить большие константа?
Приветствую Всех! Очень интересуюсь фа́кторингом в сети нашел статью &quot;Алгоритм Ро Полларда для...

СЛАУ. Метод обратной матрицы, метод Гаусса, метод Крамера, метод Зейделя
Помогите ребят. Не могу построить алгоритмы для этих методов Язык C++


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru