Спасибо за предвидущие ответы!
У меня есть еще один вопросик:
Код:
> t1:=time(); n:=11; q:=2; f:=Randpoly(n,x)mod q; f1:=diff(f,x) mod q; d:=Gcd(f,f1) mod q ; t2:=time(); print(t2 - t1);
> if d<>1 then print("privodim") else t3:=time() : roll:= rand(1..n-1) : m:=roll():!!!!!!!g:=x+1!!!!!!!: d1:=Gcd(f,g)mod q: t4:=time(): print("time is - ",t4-t3) fi;
t3 := 535.777
m := 7
g := 1 + x
d1 := 1
t4 := 535.777
"time is - ", 0.
>
Код:
if d1<>1 then print("privodim") else t5:=time() : stepen:=0 : need_stepen:=2^n : !!!!!!![print("g=",g)!!!!!!!: while stepen<need_stepen do need_g:=expand(g*g) mod q : g:=rem(need_g,f,x) mod q : stepen:=stepen+1 : od : t6:=time() :print("g=",g): print("time is - ",t6-t5) : fi;
t5 := 536.606
stepen := 0
need_stepen := 2048
"g=", x^8 + x^2 + x^7 + x + 1 + x ^9
t6 := 537.028
"g=", x^10 + x^4 + x^2 + x^3 + x ^7
"time is - ", 0.422
Места касающиеся вопроса выделены знаками восклицания.
Почему я задаю полином "g" как "х+1" но когда выполняется функция print() то выводится совершенно другой полином.Когда он успевает изменится?И при обновлении последней строки кода он постоянно изменяется?Как это возможно?