编程语句释义

来源:百度知道 编辑:UC知道 时间:2024/09/20 23:19:15
刚看了个程序,对pascal语言不是很了解,希望高人指点下。

若n是质数,(a,n)=1,则a的n-1次幂(mod n) =1。 同样,若我们选取若干个a,都满足以上等式的话,几乎可以肯定n是素数。(尽管不能完全确认,但在实际操作中是可行的)下面给出算法:
Function Miller-Rabin(n:longint):Boolean;
Begin
For I:=1 to s
do
Begin
a:=random(n-2)+2;
If modular_exp(a,n-1,n)<>1 then return false;
End;
Return true;
End;

我想问下语句a:=random(n-2)+2; 中,括号里面的 n-2 是什么意思,后面的加2有什么特殊的说法没有。
modular_exp(a,b,c)这个函数在c语言里有没有对应的函数,如何调用,包含的头文件是什么,谢谢

random是随机值函数(自带的),有两种形式:(1)random 这是取0~1之间的随机小数;(2)random(x) 这就是取0~x之间的随机整数。
所以random(n-2)是取0~(n-2)之间的整数,那么random(n-2)+2就是取2~n之间的整数。

a:=random(n-2)+2;
这个根据我初学FLASH脚本语言推论应该是取
2到N-2之间的随机数,包括小数.