如何知道PARI / GP中的数字是否在一个列表中?

时间:2015-05-25 06:38:10

标签: pari

我想知道一个号码是否在PARI / GP列表中,但我不知道该怎么做,这是我的代码:

mylist = listcreate();

... here I add some numbers with  listput(mylist,XXXX)

/* How can I do the condition in the if... */
if(mynumber in mylist,print("SUCCESS"),print("ERROR"))

我正在从Python迁移到PARI / GP我的一些脚本,我迷失在那些基本的东西中,the manual有点难以理解。谢谢!

1 个答案:

答案 0 :(得分:2)

您可以测试给定值是否在列表,向量或列向量中,如下所示:

inList(list, value)=for(i=1,#list, if(list[i]==value, return(i))); 0

或效率低于

inlist(list, value)=#select(n->n==value, list) > 0

您的示例将如下所示

if(inList(mylist, mynumber), print("SUCCESS"), print("ERROR"))

但是,如果您要进行大量查询,那么使用二进制搜索是值得的:

myset = Set(mylist);
if(setsearch(myset, mynumber), print("SUCCESS"), print("ERROR"))