Алгоритм Диффи-Хелмана
Добрый день. помогите ктото реализовать этот самый алгоритм на паскале.
а то у меня с математичискими функциями не очень получаеца в паскале :( вот попробЫвал вот так зделать: var v,n,x,y,a,b,k,k2:integer; begin randomize; v:=123450; n:=987612; x:=random(500); y:=random(500); a:=(power(v,x)) mod n; b:=(power(v,y))mod n; k:=(power(((power(v,y))mod n),x))mod n; k2:=(power((trunc(power(v,x))mod n),y))mod n; writeln(inttostr(k)); writeln(inttostr(k2)); но шото оно не хочет работать так... |
Artya
Значит так: 1. Если ты пользуешься математической функцией Power, то тебе необходимо использовать вещественный тип(Extended),а не целый(Integer). 2. Почему у тебя никак не используются переменные a и b ? 3. Для вещественных чисел можно и нужно использовать операцию деления без отбрасывания дробной части(символ /). mod тут походу не подходит. А вообще так трудно пытаться заставить алгоритм правильно работать без теории последнего.Дай что-ли краткое описание или ссылку какую-нибудь. |
|
Artya
Что-то больно сухо... Я вобще не понял,надо ли использовать вещественный тип...в частности степень?? Дело в том,что немного изменив вышеприведённый код,его удастся скомпилировать,но приложение будет падать из-за ошибки переполнения плавающей точки. |
Время: 08:20. |
Время: 08:20.
© OSzone.net 2001-