【发布时间】:2014-11-15 19:32:59
【问题描述】:
我是 pari gp 的新手,只是尝试一下,玩弄它。 我有一个像这样的反函数。
inverse (a,n) =
{
negative = false;
if (a < 0, negative = true);
if (a < 0, a= a*-1);
i = n;
v = 0;
d = 1;
while (a>0,t=i/a; x =a;
a = i % x;
i = x;
x = d;
d = v - t*x;
v = x);
v %= n;
if (v < 0, v = (v+n)%n);
if (negative == true, return (-v));
return (v);
};
所以我有一个主要功能,它由类似这样的东西组成。
while (i<n,i++;
while(j<n,j++;
// some other codes
temp1 = inverse(temp,modulus)));
我收到一个错误,提示 &[] 0Ccompo1ptr [not a vector] (t_INT) 中的类型不正确 我很确定其余代码工作正常,因为错误仅在我放置时发生
temp1 = inverse (temp,modulus)
在。
【问题讨论】:
-
感谢您更新问题以在报告错误的行与您的讨论开始的函数
inverse之间建立联系。它似乎仍然不是问题的a minimal, complete and verifiable illustration。是否有必要(为了说明)将对inverse的调用置于双重嵌套循环中?在这个 sn-p 中,我们看不到参数temp,modulus是如何被赋值的。如果inverse被调用一次并带有显式参数会发生什么?等等。 -
@hardmath。谢谢回复。反函数将打印出正确答案。如果我把它放在循环中。它不起作用,我会得到那个错误。
-
给我看代码!策略:一件事有效,另一件事无效。缩小差异。要做到这一点,您必须能够同时看到两者,并进行更改直到错误被隔离。