Реализации алгоритмов/P-метод Полларда дискретного логарифмирования: различия между версиями

Содержимое удалено Содержимое добавлено
м <source> -> <syntaxhighlight> (phab:T237267)
 
Строка 2:
=== Модифицированный интерфейс mod ===
Это делать не нужно, но многие формулы после этого выглядят более естественно
<sourcesyntaxhighlight lang="Python">
def mod(a ,b):
'''
Строка 10:
'''
return a % b
</syntaxhighlight>
</source>
 
=== [[w:Расширенный алгоритм Евклида|Расширенный алгоритм Евклида]] ===
<sourcesyntaxhighlight lang="Python">
## ExtendedGCD
# *********************************************************
Строка 26:
d, x, y = d1, y1, x1 - (a/b)*y1
return d, x, y
</syntaxhighlight>
</source>
 
=== [[w:Функция Эйлера|Функция Эйлера]] ===
<sourcesyntaxhighlight lang="Python">
## EulerPhi
# *********************************************************
Строка 63:
# но число раз = 1
return n * res
</syntaxhighlight>
</source>
 
=== <math>\rho</math>-метод Полларда ===
<sourcesyntaxhighlight lang="Python">
## SOLVE
# *********************************************************
Строка 187:
 
return (False, x)
</syntaxhighlight>
</source>
 
=== Наивный Алгоритм ===
<sourcesyntaxhighlight lang="Python">
## PREMUTIVE_LOG
# *********************************************************
Строка 208:
 
 
</syntaxhighlight>
</source>
 
=== Проверка ===
<sourcesyntaxhighlight lang="Python">
## TEST
# *********************************************************
Строка 223:
print solve(g, a, m)
print premutive_log(g, a, m)
</syntaxhighlight>
</source>
 
{{BookCat}}